first commit

This commit is contained in:
2023-02-16 18:34:03 -05:00
parent 3ecc3e5f3a
commit df823f7e4e
22 changed files with 1005 additions and 0 deletions

18
modules/base.nix Normal file
View 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
View File

@@ -0,0 +1,9 @@
{...}: {
imports = [
# New module organization
./gnome
./base.nix
./ssh.nix
./user.nix
];
}

68
modules/gnome/default.nix Normal file
View 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 ];
};
}

View 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"; };
};
}

View 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

View File

@@ -0,0 +1,8 @@
{ config, pkgs, ... }:
{
home.packages = with pkgs; [
nicotine-plus
];
xdg.configFile."nicotine/config.old".source = ./configs/nicotine;
}

View 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
View 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
View 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;
};
}