mirror of
https://github.com/sstent/vmimages.git
synced 2026-01-25 14:41:44 +00:00
first commit
This commit is contained in:
18
modules/base.nix
Normal file
18
modules/base.nix
Normal file
@@ -0,0 +1,18 @@
|
||||
# This is your system's configuration file.
|
||||
# Use this to configure your system environment (it replaces /etc/nixos/configuration.nix)
|
||||
|
||||
{ lib, config, pkgs, inputs, ... }: {
|
||||
# You can import other NixOS modules here
|
||||
|
||||
# imports = [
|
||||
# #./hardware-configuration.nix
|
||||
# ];
|
||||
|
||||
imports = [ inputs.agenix.nixosModules.default ];
|
||||
security.sudo.wheelNeedsPassword = false;
|
||||
|
||||
environment.systemPackages =
|
||||
[ pkgs.cifs-utils inputs.agenix.packages.x86_64-linux.default ];
|
||||
age.secrets.secret1.file = ../../secrets/secret1.age;
|
||||
|
||||
}
|
||||
9
modules/default.nix
Normal file
9
modules/default.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{...}: {
|
||||
imports = [
|
||||
# New module organization
|
||||
./gnome
|
||||
./base.nix
|
||||
./ssh.nix
|
||||
./user.nix
|
||||
];
|
||||
}
|
||||
68
modules/gnome/default.nix
Normal file
68
modules/gnome/default.nix
Normal file
@@ -0,0 +1,68 @@
|
||||
# This is your system's configuration file.
|
||||
# Use this to configure your system environment (it replaces /etc/nixos/configuration.nix)
|
||||
|
||||
{ lib, config, pkgs, ... }: {
|
||||
|
||||
#define option to enable this
|
||||
options.mymods.gnome.enable = lib.mkEnableOption "Enable Gnome Env";
|
||||
|
||||
config = lib.mkIf config.mymods.gnome.enable {
|
||||
users.users.gdm.extraGroups = [ "video" ];
|
||||
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
modules = [ pkgs.xorg.xf86videofbdev ];
|
||||
videoDrivers = [ "hyperv_fb" ];
|
||||
displayManager.gdm.enable = true;
|
||||
desktopManager.gnome.enable = true;
|
||||
displayManager.startx.enable = true;
|
||||
};
|
||||
|
||||
environment.gnome.excludePackages = (with pkgs; [ gnome-photos gnome-tour ])
|
||||
++ (with pkgs.gnome; [
|
||||
cheese # webcam tool
|
||||
gnome-music
|
||||
#gnome-terminal
|
||||
#gedit # text editor
|
||||
epiphany # web browser
|
||||
geary # email reader
|
||||
#evince # document viewer
|
||||
gnome-characters
|
||||
totem # video player
|
||||
tali # poker game
|
||||
iagno # go game
|
||||
hitori # sudoku game
|
||||
atomix # puzzle game
|
||||
]);
|
||||
|
||||
## https://github.com/NixOS/nixpkgs/issues/126265
|
||||
## watch https://github.com/NixOS/nixpkgs/pull/83928
|
||||
services.xrdp = {
|
||||
# enable = true;
|
||||
# defaultWindowManager = "${pkgs.gnome3.gnome-shell}/bin/gnome-shell";
|
||||
package = pkgs.xrdp.overrideAttrs (oldAttrs: {
|
||||
configureFlags = oldAttrs.configureFlags ++ [ "--enable-vsock" ];
|
||||
postInstall = oldAttrs.postInstall + ''
|
||||
substituteInPlace $out/etc/xrdp/xrdp.ini \
|
||||
--replace "port=3389" "port=vsock://-1:3389" \
|
||||
--replace "security_layer=negotiate" "security_layer=rdp" \
|
||||
--replace "crypt_level=high" "crypt_level=none" \
|
||||
--replace "bitmap_compression=true" "bitmap_compression=false"
|
||||
|
||||
substituteInPlace $out/etc/xrdp/sesman.ini \
|
||||
--replace "X11DisplayOffset=10" "X11DisplayOffset=0" \
|
||||
--replace "FuseMountName=thinclient_drives" "FuseMountName=shared_drives"
|
||||
'';
|
||||
});
|
||||
};
|
||||
# --replace "use_vsock=false" "use_vsock=true" \
|
||||
|
||||
environment.etc."X11/Xwrapper.config".text = ''
|
||||
allowed_users=anybody
|
||||
'';
|
||||
services.xrdp.enable = true;
|
||||
services.xrdp.defaultWindowManager = "gnome-shell";
|
||||
networking.firewall.allowedTCPPorts = [ 3389 ];
|
||||
|
||||
};
|
||||
}
|
||||
62
modules/home-manager/base.nix
Normal file
62
modules/home-manager/base.nix
Normal file
@@ -0,0 +1,62 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# Home Manager needs a bit of information about you and the
|
||||
# paths it should manage.
|
||||
home.username = "sstent";
|
||||
home.homeDirectory = "/home/sstent";
|
||||
#targets.genericLinux.enable = true;
|
||||
|
||||
# changes in each release.
|
||||
# home.stateVersion = "22.05";
|
||||
home.stateVersion = "23.05";
|
||||
programs.bash.enable = true;
|
||||
programs.firefox.enable = true;
|
||||
programs.gnome-terminal.enable = true;
|
||||
programs.gnome-terminal.profile = {
|
||||
"f2afd3c7-cb35-4d08-b6c2-523b444be64d" = {
|
||||
visibleName = "Stu";
|
||||
showScrollbar = true;
|
||||
default = true;
|
||||
font = "DejaVu Sans Mono 12";
|
||||
colors = {
|
||||
backgroundColor = "rgb(23,20,33)";
|
||||
foregroundColor = "rgb(208,207,204)";
|
||||
palette = [
|
||||
"#272224"
|
||||
"#FF473D"
|
||||
"#3DCCB2"
|
||||
"#FF9600"
|
||||
"#3B7ECB"
|
||||
"#F74C6D"
|
||||
"#00B5FC"
|
||||
"#3E3E3E"
|
||||
"#52494C"
|
||||
"#FF6961"
|
||||
"#85E6D4"
|
||||
"#FFB347"
|
||||
"#779ECB"
|
||||
"#F7A8B8"
|
||||
"#55CDFC"
|
||||
"#EEEEEC"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
xdg.configFile."gnome-initial-setup-done".text = "yes";
|
||||
xdg.configFile."gtk-3.0/bookmarks".text = ''
|
||||
file:///mnt/Public Public
|
||||
'';
|
||||
dconf.settings = {
|
||||
# ...
|
||||
"org/gnome/shell" = {
|
||||
favorite-apps = [
|
||||
"firefox.desktop"
|
||||
"org.gnome.Terminal.desktop"
|
||||
"org.gnome.Nautilus.desktop"
|
||||
];
|
||||
};
|
||||
"org/gnome/desktop/interface" = { color-scheme = "prefer-dark"; };
|
||||
|
||||
};
|
||||
}
|
||||
245
modules/home-manager/configs/nicotine
Normal file
245
modules/home-manager/configs/nicotine
Normal file
@@ -0,0 +1,245 @@
|
||||
[server]
|
||||
login = shapechecker
|
||||
passw = 6EbCdhRR7yUdN5ImeY9S
|
||||
server = ('server.slsknet.org', 2242)
|
||||
interface =
|
||||
ctcpmsgs = False
|
||||
autosearch = []
|
||||
autoreply =
|
||||
portrange = (2234, 2239)
|
||||
upnp = True
|
||||
upnp_interval = 4
|
||||
auto_connect_startup = True
|
||||
userlist = []
|
||||
banlist = []
|
||||
ignorelist = []
|
||||
ipignorelist = {}
|
||||
ipblocklist = {}
|
||||
autojoin = ['nicotine']
|
||||
autoaway = 15
|
||||
away = False
|
||||
private_chatrooms = False
|
||||
command_aliases = {}
|
||||
|
||||
[transfers]
|
||||
incompletedir = /home/sstent/.local/share/nicotine/incomplete
|
||||
downloaddir = /home/sstent/.local/share/nicotine/downloads
|
||||
uploaddir = /home/sstent/.local/share/nicotine/received
|
||||
usernamesubfolders = False
|
||||
shared = []
|
||||
buddyshared = []
|
||||
uploadbandwidth = 50
|
||||
uselimit = False
|
||||
usealtlimits = False
|
||||
uploadlimit = 1000
|
||||
uploadlimitalt = 100
|
||||
downloadlimit = 0
|
||||
downloadlimitalt = 100
|
||||
preferfriends = False
|
||||
useupslots = False
|
||||
uploadslots = 2
|
||||
afterfinish =
|
||||
afterfolder =
|
||||
lock = True
|
||||
reverseorder = False
|
||||
fifoqueue = False
|
||||
usecustomban = False
|
||||
limitby = True
|
||||
customban = Banned, don't bother retrying
|
||||
usecustomgeoblock = False
|
||||
customgeoblock = Sorry, your country is blocked
|
||||
queuelimit = 10000
|
||||
filelimit = 100
|
||||
buddysharestrustedonly = False
|
||||
friendsnolimits = False
|
||||
groupdownloads = folder_grouping
|
||||
groupuploads = folder_grouping
|
||||
geoblock = False
|
||||
geoblockcc = ['']
|
||||
remotedownloads = True
|
||||
uploadallowed = 2
|
||||
autoclear_downloads = False
|
||||
autoclear_uploads = False
|
||||
uploadsinsubdirs = True
|
||||
rescanonstartup = True
|
||||
enablefilters = False
|
||||
downloadregexp = (\\(.*\.url|albumart(_{........-....-....-....-............}_)?(_?(large|small))?\.jpg|desktop\.ini|folder\.jpg|thumbs\.db)$)
|
||||
downloadfilters = [['desktop.ini', 1], ['folder.jpg', 1], ['*.url', 1], ['thumbs.db', 1], ['albumart(_{........-....-....-....-............}_)?(_?(large|small))?\\.jpg', 0]]
|
||||
download_doubleclick = 2
|
||||
upload_doubleclick = 2
|
||||
downloadsexpanded = True
|
||||
uploadsexpanded = True
|
||||
|
||||
[userinfo]
|
||||
descr = ''
|
||||
pic =
|
||||
|
||||
[userbrowse]
|
||||
expand_folders = True
|
||||
|
||||
[words]
|
||||
censored = []
|
||||
autoreplaced = {'teh ': 'the ', 'taht ': 'that ', 'tihng': 'thing', 'youre': "you're", 'jsut': 'just', 'thier': 'their', 'tihs': 'this'}
|
||||
censorfill = *
|
||||
censorwords = False
|
||||
replacewords = False
|
||||
tab = True
|
||||
cycle = False
|
||||
dropdown = False
|
||||
characters = 3
|
||||
roomnames = False
|
||||
buddies = True
|
||||
roomusers = True
|
||||
commands = True
|
||||
aliases = True
|
||||
onematch = False
|
||||
|
||||
[logging]
|
||||
debug = False
|
||||
debugmodes = []
|
||||
debuglogsdir = /home/sstent/.local/share/nicotine/logs/debug
|
||||
logcollapsed = True
|
||||
transferslogsdir = /home/sstent/.local/share/nicotine/logs/transfers
|
||||
rooms_timestamp = %H:%M:%S
|
||||
private_timestamp = %Y-%m-%d %H:%M:%S
|
||||
log_timestamp = %Y-%m-%d %H:%M:%S
|
||||
privatechat = True
|
||||
chatrooms = True
|
||||
transfers = False
|
||||
debug_file_output = False
|
||||
roomlogsdir = /home/sstent/.local/share/nicotine/logs/rooms
|
||||
privatelogsdir = /home/sstent/.local/share/nicotine/logs/private
|
||||
readroomlogs = True
|
||||
readroomlines = 15
|
||||
readprivatelines = 15
|
||||
rooms = ['nicotine']
|
||||
|
||||
[privatechat]
|
||||
store = True
|
||||
users = []
|
||||
|
||||
[columns]
|
||||
file_search = {}
|
||||
download = {}
|
||||
upload = {}
|
||||
user_browse = {}
|
||||
buddy_list = {}
|
||||
chat_room = {'nicotine': {}}
|
||||
|
||||
[searches]
|
||||
expand_searches = True
|
||||
group_searches = folder_grouping
|
||||
maxresults = 150
|
||||
enable_history = True
|
||||
history = []
|
||||
enablefilters = False
|
||||
filters_visible = False
|
||||
defilter = ['', '', '', '', False, '', '']
|
||||
filtercc = []
|
||||
filterin = []
|
||||
filterout = []
|
||||
filtersize = []
|
||||
filterbr = []
|
||||
filtertype = []
|
||||
search_results = True
|
||||
max_displayed_results = 1500
|
||||
min_search_chars = 3
|
||||
remove_special_chars = True
|
||||
private_search_results = True
|
||||
|
||||
[ui]
|
||||
dark_mode = False
|
||||
header_bar = True
|
||||
icontheme =
|
||||
chatme = #908e8b
|
||||
chatremote =
|
||||
chatlocal =
|
||||
chathilite = #5288ce
|
||||
urlcolor = #5288ce
|
||||
useronline = #16bb5c
|
||||
useraway = #c9ae13
|
||||
useroffline = #e04f5e
|
||||
usernamehotspots = True
|
||||
usernamestyle = bold
|
||||
textbg =
|
||||
search =
|
||||
searchq = GREY
|
||||
inputcolor =
|
||||
spellcheck = True
|
||||
exitdialog = 1
|
||||
tab_default =
|
||||
tab_hilite = #497ec2
|
||||
tab_changed = #497ec2
|
||||
tab_select_previous = True
|
||||
tabmain = Top
|
||||
tabrooms = Top
|
||||
tabprivate = Top
|
||||
tabinfo = Top
|
||||
tabbrowse = Top
|
||||
tabsearch = Top
|
||||
tab_status_icons = True
|
||||
globalfont = Normal
|
||||
chatfont = Normal
|
||||
tabclosers = True
|
||||
searchfont = Normal
|
||||
listfont = Normal
|
||||
browserfont = Normal
|
||||
transfersfont = Normal
|
||||
last_tab_id =
|
||||
modes_visible = {'search': True, 'downloads': True, 'uploads': True, 'userbrowse': True, 'userinfo': True, 'private': True, 'userlist': True, 'chatrooms': True, 'interests': True}
|
||||
modes_order = ['search', 'downloads', 'uploads', 'userbrowse', 'userinfo', 'private', 'userlist', 'chatrooms', 'interests']
|
||||
buddylistinchatrooms = tab
|
||||
trayicon = True
|
||||
startup_hidden = False
|
||||
filemanager =
|
||||
speechenabled = False
|
||||
speechprivate = User %(user)s told you: %(message)s
|
||||
speechrooms = In room %(room)s, user %(user)s said: %(message)s
|
||||
speechcommand = flite -t $
|
||||
width = 800
|
||||
height = 600
|
||||
xposition = -1
|
||||
yposition = -1
|
||||
maximized = True
|
||||
urgencyhint = True
|
||||
file_path_tooltips = True
|
||||
reverse_file_paths = True
|
||||
|
||||
[private_rooms]
|
||||
rooms = {}
|
||||
|
||||
[urls]
|
||||
protocols = {}
|
||||
|
||||
[interests]
|
||||
likes = []
|
||||
dislikes = []
|
||||
|
||||
[players]
|
||||
default =
|
||||
npothercommand =
|
||||
npplayer = mpris
|
||||
npformatlist = []
|
||||
npformat =
|
||||
|
||||
[notifications]
|
||||
notification_window_title = True
|
||||
notification_tab_colors = False
|
||||
notification_popup_sound = False
|
||||
notification_popup_file = True
|
||||
notification_popup_folder = True
|
||||
notification_popup_private_message = True
|
||||
notification_popup_chatroom = False
|
||||
notification_popup_chatroom_mention = True
|
||||
|
||||
[plugins]
|
||||
enable = True
|
||||
enabled = []
|
||||
|
||||
[statistics]
|
||||
started_downloads = 0
|
||||
completed_downloads = 0
|
||||
downloaded_size = 0
|
||||
started_uploads = 0
|
||||
completed_uploads = 0
|
||||
uploaded_size = 0
|
||||
8
modules/home-manager/nicotine.nix
Normal file
8
modules/home-manager/nicotine.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
nicotine-plus
|
||||
];
|
||||
xdg.configFile."nicotine/config.old".source = ./configs/nicotine;
|
||||
}
|
||||
76
modules/homemanager_hyperv.nix
Normal file
76
modules/homemanager_hyperv.nix
Normal file
@@ -0,0 +1,76 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# Home Manager needs a bit of information about you and the
|
||||
# paths it should manage.
|
||||
home.username = "sstent";
|
||||
home.homeDirectory = "/home/sstent";
|
||||
#targets.genericLinux.enable = true;
|
||||
|
||||
# changes in each release.
|
||||
# home.stateVersion = "22.05";
|
||||
home.stateVersion = "23.05";
|
||||
|
||||
home.shellAliases = {
|
||||
revert_base_config = "sudo cp /etc/nixos/{orig_,}configuration.nix; sudo cp /etc/nixos/{orig_,}flake.nix; sudo cp /etc/nixos/{orig_,}homemanager.nix; sudo nixos-generate-config";
|
||||
};
|
||||
|
||||
# Let Home Manager install and manage itself.
|
||||
# programs.home-manager.enable = true;
|
||||
home.packages = with pkgs; [
|
||||
nicotine-plus
|
||||
gnomeExtensions.mullvad-indicator
|
||||
mullvad-vpn
|
||||
];
|
||||
programs.bash.enable = true;
|
||||
programs.firefox.enable = true;
|
||||
programs.gnome-terminal.enable = true;
|
||||
programs.gnome-terminal.profile = {
|
||||
"f2afd3c7-cb35-4d08-b6c2-523b444be64d" = {
|
||||
visibleName = "Stu";
|
||||
showScrollbar = true;
|
||||
default = true;
|
||||
font = "DejaVu Sans Mono 12";
|
||||
colors = {
|
||||
backgroundColor = "rgb(23,20,33)";
|
||||
foregroundColor = "rgb(208,207,204)";
|
||||
palette = [
|
||||
"#272224"
|
||||
"#FF473D"
|
||||
"#3DCCB2"
|
||||
"#FF9600"
|
||||
"#3B7ECB"
|
||||
"#F74C6D"
|
||||
"#00B5FC"
|
||||
"#3E3E3E"
|
||||
"#52494C"
|
||||
"#FF6961"
|
||||
"#85E6D4"
|
||||
"#FFB347"
|
||||
"#779ECB"
|
||||
"#F7A8B8"
|
||||
"#55CDFC"
|
||||
"#EEEEEC"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
xdg.configFile."nicotine/config.old".source = ./configs/nicotine;
|
||||
xdg.configFile."gnome-initial-setup-done".text = "yes";
|
||||
xdg.configFile."gtk-3.0/bookmarks".text = ''
|
||||
file:///mnt/Public Public
|
||||
'';
|
||||
dconf.settings = {
|
||||
# ...
|
||||
"org/gnome/shell" = {
|
||||
favorite-apps = [
|
||||
"firefox.desktop"
|
||||
"org.gnome.Terminal.desktop"
|
||||
"org.gnome.Nautilus.desktop"
|
||||
|
||||
];
|
||||
};
|
||||
"org/gnome/desktop/interface" = { color-scheme = "prefer-dark"; };
|
||||
|
||||
};
|
||||
}
|
||||
16
modules/ssh.nix
Normal file
16
modules/ssh.nix
Normal file
@@ -0,0 +1,16 @@
|
||||
{ lib, config, pkgs, ... }: {
|
||||
|
||||
#define option to enable this
|
||||
options.mymods.sshd.enable = lib.mkEnableOption "Enable SSH";
|
||||
|
||||
config = lib.mkIf config.mymods.sshd.enable {
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
settings.permitRootLogin = "no";
|
||||
settings.passwordAuthentication = false;
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = [ 22 ];
|
||||
|
||||
};
|
||||
}
|
||||
19
modules/user.nix
Normal file
19
modules/user.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
{ lib, config, pkgs, ... }: {
|
||||
|
||||
options.mymods.user_sstent.enable = lib.mkEnableOption "Create sstent user";
|
||||
|
||||
config = lib.mkIf config.mymods.user_sstent.enable {
|
||||
users.users = {
|
||||
sstent = {
|
||||
initialPassword = "farscape5";
|
||||
isNormalUser = true;
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+D4o3mL4BQsRr0UIhB1hn0brSTIJ9Lr0m2fMMVGF3tIuEihnmwGTeAX78q5/bmoo4gZy7G+CHal54S1lY8LY1KvmIDCpPJ8848HvLbTiTX3qZ7Mjaav+Ox9eHMwX+7zkPwdhfP8TDvmNe12j1GEKBhAm+FhdBQCbEV7cbm1SkX0+WBGoVvI2qbRm1RF0mOuTAmO3Lr2YeAcKJ21YxwNMv1Qrj7oxGYH9rLHLNwZ/0soIdTC9cikl4DHyvCs4HRYcVw36uuCVc/AyIT2GeETRapAQr8nzT89Haa1IThgZ9ztjSsSSOtrUhxatlMIfTIpVjl/gWq7GLfqd/ei/evTal sstent@StuPC"
|
||||
];
|
||||
extraGroups = [ "wheel" "video" ];
|
||||
};
|
||||
};
|
||||
security.sudo.wheelNeedsPassword = false;
|
||||
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user