Auto-indent every file

This commit is contained in:
Vili Sinervä 2024-06-02 05:53:39 +03:00
parent d705ce20c3
commit 4787fea598
No known key found for this signature in database
GPG key ID: DF8FEAF54EFAC996
14 changed files with 977 additions and 997 deletions

View file

@ -2,7 +2,7 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
#################### Packages #################### #################### Packages ####################
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
rxvt-unicode-emoji rxvt-unicode-emoji
tmux tmux
git git
@ -10,12 +10,12 @@
nano nano
p7zip p7zip
tree tree
]; ];
#################### ZSH configuration #################### #################### ZSH configuration ####################
users.defaultUserShell = pkgs.zsh; users.defaultUserShell = pkgs.zsh;
environment.shells = with pkgs; [ zsh ]; environment.shells = with pkgs; [ zsh ];
programs.zsh = { programs.zsh = {
enable = true; enable = true;
autosuggestions.enable = true; autosuggestions.enable = true;
syntaxHighlighting.enable = true; syntaxHighlighting.enable = true;
@ -41,8 +41,8 @@
#################### tmux configuration #################### #################### tmux configuration ####################
programs.tmux.enable = true; programs.tmux.enable = true;
programs.tmux.extraConfig = programs.tmux.extraConfig =
'' ''
unbind C-b unbind C-b
set -g prefix M-w set -g prefix M-w
@ -83,37 +83,37 @@
''; '';
#################### SSH configuration #################### #################### SSH configuration ####################
services.openssh.enable = true; services.openssh.enable = true;
services.openssh.settings.PasswordAuthentication = false; services.openssh.settings.PasswordAuthentication = false;
users.users.root.openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBbGREoK1uVny1s8FK3KZ74Wmaf0VtifhqPyK69C/Gez vili@helium" ]; users.users.root.openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBbGREoK1uVny1s8FK3KZ74Wmaf0VtifhqPyK69C/Gez vili@helium" ];
#################### BASE #################### #################### BASE ####################
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
users.mutableUsers = false; # Force all user management to happen throught nix-files users.mutableUsers = false; # Force all user management to happen throught nix-files
# Select internationalisation properties. # Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8"; i18n.defaultLocale = "en_US.UTF-8";
services.xserver.xkb = { services.xserver.xkb = {
layout = "us,"; layout = "us,";
variant = "de_se_fi,"; variant = "de_se_fi,";
}; };
console = pkgs.lib.mkForce { console = pkgs.lib.mkForce {
font = "Lat2-Terminus16"; font = "Lat2-Terminus16";
useXkbConfig = true; # use xkbOptions in tty. useXkbConfig = true; # use xkbOptions in tty.
}; };
time.timeZone = "Europe/Helsinki"; time.timeZone = "Europe/Helsinki";
#################### Housekeeping #################### #################### Housekeeping ####################
system.autoUpgrade = { system.autoUpgrade = {
enable = true; enable = true;
dates = "04:00"; dates = "04:00";
randomizedDelaySec = "30min"; randomizedDelaySec = "30min";
}; };
nix = { nix = {
settings = { settings = {
auto-optimise-store = true; auto-optimise-store = true;
tarball-ttl = 0; tarball-ttl = 0;
@ -124,10 +124,10 @@
dates = "05:00"; dates = "05:00";
randomizedDelaySec = "30min"; randomizedDelaySec = "30min";
}; };
}; };
# Copy the NixOS configuration file and link it from the resulting system # Copy the NixOS configuration file and link it from the resulting system
# (/run/current-system/configuration.nix). This is useful in case you # (/run/current-system/configuration.nix). This is useful in case you
# accidentally delete configuration.nix. # accidentally delete configuration.nix.
system.copySystemConfiguration = true; system.copySystemConfiguration = true;
} }

View file

@ -9,15 +9,15 @@ let
ref = "main"; ref = "main";
}; };
in in
{ {
# Verification will be available soon, so keeping this here as a reminder # Verification will be available soon, so keeping this here as a reminder
# publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBbGREoK1uVny1s8FK3KZ74Wmaf0VtifhqPyK69C/Gez vili@helium"; # publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBbGREoK1uVny1s8FK3KZ74Wmaf0VtifhqPyK69C/Gez vili@helium";
# nix.settings.experimental-features = "verified-fetches"; # nix.settings.experimental-features = "verified-fetches";
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
"${repo}/machine-confs/${host}.nix" "${repo}/machine-confs/${host}.nix"
]; ];
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions
@ -25,5 +25,5 @@ in
# this value at the release version of the first install of this system. # this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option # Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = stateVersion; # Did you read the comment? system.stateVersion = stateVersion; # Did you read the comment?
} }

View file

@ -1,7 +1,7 @@
#Config for graphical desktop #Config for graphical desktop
{ config, pkgs, ... }: { config, pkgs, ... }:
let let
i3status-conf = "${pkgs.writeText "i3status-conf" i3status-conf = "${pkgs.writeText "i3status-conf"
'' ''
# i3status configuration file. # i3status configuration file.
# see "man i3status" for documentation. # see "man i3status" for documentation.
@ -11,44 +11,44 @@ i3status-conf = "${pkgs.writeText "i3status-conf"
# ß # ß
# If the above line is not correctly displayed, fix your editor first! # If the above line is not correctly displayed, fix your editor first!
general { general {
output_format = "i3bar" output_format = "i3bar"
colors = true colors = true
interval = 5 interval = 5
color_good = "#2AA198" color_good = "#2AA198"
color_bad = "#586E75" color_bad = "#586E75"
color_degraded = "#DC322F" color_degraded = "#DC322F"
} }
order += "battery all" order += "battery all"
order += "cpu_usage" order += "cpu_usage"
order += "memory" order += "memory"
order += "ethernet _first_" order += "ethernet _first_"
order += "wireless _first_" order += "wireless _first_"
order += "disk /" order += "disk /"
order += "tztime local" order += "tztime local"
order += "tztime helsinki" order += "tztime helsinki"
cpu_usage { cpu_usage {
format = " CPU %usage " format = " CPU %usage "
} }
disk "/" { disk "/" {
# format = " hdd %avail " # format = " hdd %avail "
format = " %avail " format = " %avail "
} }
ethernet _first_ { ethernet _first_ {
format_up = " LAN: %ip " format_up = " LAN: %ip "
format_down = " No LAN " format_down = " No LAN "
} }
wireless _first_ { wireless _first_ {
format_up = " %quality%essid: %ip " format_up = " %quality%essid: %ip "
format_down = "" format_down = ""
} }
battery all { battery all {
# format = "%status %percentage %remaining %emptytime" # format = "%status %percentage %remaining %emptytime"
format = " bat %status %percentage (%remaining left) " format = " bat %status %percentage (%remaining left) "
format_down = "" format_down = ""
@ -66,206 +66,206 @@ battery all {
status_full = "" status_full = ""
low_threshold = 30 low_threshold = 30
threshold_type = time threshold_type = time
} }
memory { memory {
format = " RAM %used / %total " format = " RAM %used / %total "
threshold_degraded = "10%" threshold_degraded = "10%"
} }
tztime local { tztime local {
format = " %d.%m. %H:%M " format = " %d.%m. %H:%M "
} }
tztime helsinki { tztime helsinki {
format = " (HEL %H:%M) " format = " (HEL %H:%M) "
timezone = "Europe/Helsinki" timezone = "Europe/Helsinki"
hide_if_equals_localtime = true hide_if_equals_localtime = true
} }
''}"; ''}";
i3-conf = "${pkgs.writeText "i3config" i3-conf = "${pkgs.writeText "i3config"
'' ''
# Set mod key (Mod1=<Alt>, Mod4=<Super>) # Set mod key (Mod1=<Alt>, Mod4=<Super>)
set $mod Mod4 set $mod Mod4
# Workspace names # Workspace names
# to display names or symbols instead of plain workspace numbers you can use # to display names or symbols instead of plain workspace numbers you can use
# something like: set $ws1 1:mail # something like: set $ws1 1:mail
# set $ws2 2: # set $ws2 2:
set $ws1 1 set $ws1 1
set $ws2 2 set $ws2 2
set $ws3 3 set $ws3 3
set $ws4 4 set $ws4 4
set $ws5 5 set $ws5 5
set $ws6 6 set $ws6 6
set $ws7 7 set $ws7 7
set $ws8 8 set $ws8 8
set $ws9 9 set $ws9 9
set $ws10 10 set $ws10 10
set $ws11 11 set $ws11 11
set $ws12 12 set $ws12 12
set $ws13 13 set $ws13 13
set $ws14 14 set $ws14 14
set $ws15 15 set $ws15 15
set $ws16 16 set $ws16 16
set $ws17 17 set $ws17 17
set $ws18 18 set $ws18 18
set $ws19 19 set $ws19 19
set $ws20 20 set $ws20 20
# switch to workspace # switch to workspace
bindsym $mod+1 workspace $ws1 bindsym $mod+1 workspace $ws1
bindsym $mod+2 workspace $ws2 bindsym $mod+2 workspace $ws2
bindsym $mod+3 workspace $ws3 bindsym $mod+3 workspace $ws3
bindsym $mod+4 workspace $ws4 bindsym $mod+4 workspace $ws4
bindsym $mod+5 workspace $ws5 bindsym $mod+5 workspace $ws5
bindsym $mod+6 workspace $ws6 bindsym $mod+6 workspace $ws6
bindsym $mod+7 workspace $ws7 bindsym $mod+7 workspace $ws7
bindsym $mod+8 workspace $ws8 bindsym $mod+8 workspace $ws8
bindsym $mod+9 workspace $ws9 bindsym $mod+9 workspace $ws9
bindsym $mod+0 workspace $ws10 bindsym $mod+0 workspace $ws10
bindsym $mod+Mod1+1 workspace $ws11 bindsym $mod+Mod1+1 workspace $ws11
bindsym $mod+Mod1+2 workspace $ws12 bindsym $mod+Mod1+2 workspace $ws12
bindsym $mod+Mod1+3 workspace $ws13 bindsym $mod+Mod1+3 workspace $ws13
bindsym $mod+Mod1+4 workspace $ws14 bindsym $mod+Mod1+4 workspace $ws14
bindsym $mod+Mod1+5 workspace $ws15 bindsym $mod+Mod1+5 workspace $ws15
bindsym $mod+Mod1+6 workspace $ws16 bindsym $mod+Mod1+6 workspace $ws16
bindsym $mod+Mod1+7 workspace $ws17 bindsym $mod+Mod1+7 workspace $ws17
bindsym $mod+Mod1+8 workspace $ws18 bindsym $mod+Mod1+8 workspace $ws18
bindsym $mod+Mod1+9 workspace $ws19 bindsym $mod+Mod1+9 workspace $ws19
bindsym $mod+Mod1+0 workspace $ws20 bindsym $mod+Mod1+0 workspace $ws20
# Move focused container to workspace # Move focused container to workspace
bindsym $mod+Ctrl+1 move container to workspace $ws1 bindsym $mod+Ctrl+1 move container to workspace $ws1
bindsym $mod+Ctrl+2 move container to workspace $ws2 bindsym $mod+Ctrl+2 move container to workspace $ws2
bindsym $mod+Ctrl+3 move container to workspace $ws3 bindsym $mod+Ctrl+3 move container to workspace $ws3
bindsym $mod+Ctrl+4 move container to workspace $ws4 bindsym $mod+Ctrl+4 move container to workspace $ws4
bindsym $mod+Ctrl+5 move container to workspace $ws5 bindsym $mod+Ctrl+5 move container to workspace $ws5
bindsym $mod+Ctrl+6 move container to workspace $ws6 bindsym $mod+Ctrl+6 move container to workspace $ws6
bindsym $mod+Ctrl+7 move container to workspace $ws7 bindsym $mod+Ctrl+7 move container to workspace $ws7
bindsym $mod+Ctrl+8 move container to workspace $ws8 bindsym $mod+Ctrl+8 move container to workspace $ws8
bindsym $mod+Ctrl+9 move container to workspace $ws9 bindsym $mod+Ctrl+9 move container to workspace $ws9
bindsym $mod+Ctrl+0 move container to workspace $ws10 bindsym $mod+Ctrl+0 move container to workspace $ws10
bindsym $mod+Mod1+Ctrl+1 move container to workspace $ws11 bindsym $mod+Mod1+Ctrl+1 move container to workspace $ws11
bindsym $mod+Mod1+Ctrl+2 move container to workspace $ws12 bindsym $mod+Mod1+Ctrl+2 move container to workspace $ws12
bindsym $mod+Mod1+Ctrl+3 move container to workspace $ws13 bindsym $mod+Mod1+Ctrl+3 move container to workspace $ws13
bindsym $mod+Mod1+Ctrl+4 move container to workspace $ws14 bindsym $mod+Mod1+Ctrl+4 move container to workspace $ws14
bindsym $mod+Mod1+Ctrl+5 move container to workspace $ws15 bindsym $mod+Mod1+Ctrl+5 move container to workspace $ws15
bindsym $mod+Mod1+Ctrl+6 move container to workspace $ws16 bindsym $mod+Mod1+Ctrl+6 move container to workspace $ws16
bindsym $mod+Mod1+Ctrl+7 move container to workspace $ws17 bindsym $mod+Mod1+Ctrl+7 move container to workspace $ws17
bindsym $mod+Mod1+Ctrl+8 move container to workspace $ws18 bindsym $mod+Mod1+Ctrl+8 move container to workspace $ws18
bindsym $mod+Mod1+Ctrl+9 move container to workspace $ws19 bindsym $mod+Mod1+Ctrl+9 move container to workspace $ws19
bindsym $mod+Mod1+Ctrl+0 move container to workspace $ws20 bindsym $mod+Mod1+Ctrl+0 move container to workspace $ws20
# Move to workspace with focused container # Move to workspace with focused container
bindsym $mod+Shift+1 move container to workspace $ws1; workspace $ws1 bindsym $mod+Shift+1 move container to workspace $ws1; workspace $ws1
bindsym $mod+Shift+2 move container to workspace $ws2; workspace $ws2 bindsym $mod+Shift+2 move container to workspace $ws2; workspace $ws2
bindsym $mod+Shift+3 move container to workspace $ws3; workspace $ws3 bindsym $mod+Shift+3 move container to workspace $ws3; workspace $ws3
bindsym $mod+Shift+4 move container to workspace $ws4; workspace $ws4 bindsym $mod+Shift+4 move container to workspace $ws4; workspace $ws4
bindsym $mod+Shift+5 move container to workspace $ws5; workspace $ws5 bindsym $mod+Shift+5 move container to workspace $ws5; workspace $ws5
bindsym $mod+Shift+6 move container to workspace $ws6; workspace $ws6 bindsym $mod+Shift+6 move container to workspace $ws6; workspace $ws6
bindsym $mod+Shift+7 move container to workspace $ws7; workspace $ws7 bindsym $mod+Shift+7 move container to workspace $ws7; workspace $ws7
bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8 bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8
bindsym $mod+Shift+9 move container to workspace $ws9; workspace $ws9 bindsym $mod+Shift+9 move container to workspace $ws9; workspace $ws9
bindsym $mod+Shift+0 move container to workspace $ws10; workspace $ws10 bindsym $mod+Shift+0 move container to workspace $ws10; workspace $ws10
bindsym $mod+Mod1+Shift+1 move container to workspace $ws11; workspace $ws11 bindsym $mod+Mod1+Shift+1 move container to workspace $ws11; workspace $ws11
bindsym $mod+Mod1+Shift+2 move container to workspace $ws12; workspace $ws12 bindsym $mod+Mod1+Shift+2 move container to workspace $ws12; workspace $ws12
bindsym $mod+Mod1+Shift+3 move container to workspace $ws13; workspace $ws13 bindsym $mod+Mod1+Shift+3 move container to workspace $ws13; workspace $ws13
bindsym $mod+Mod1+Shift+4 move container to workspace $ws14; workspace $ws14 bindsym $mod+Mod1+Shift+4 move container to workspace $ws14; workspace $ws14
bindsym $mod+Mod1+Shift+5 move container to workspace $ws15; workspace $ws15 bindsym $mod+Mod1+Shift+5 move container to workspace $ws15; workspace $ws15
bindsym $mod+Mod1+Shift+6 move container to workspace $ws16; workspace $ws16 bindsym $mod+Mod1+Shift+6 move container to workspace $ws16; workspace $ws16
bindsym $mod+Mod1+Shift+7 move container to workspace $ws17; workspace $ws17 bindsym $mod+Mod1+Shift+7 move container to workspace $ws17; workspace $ws17
bindsym $mod+Mod1+Shift+8 move container to workspace $ws18; workspace $ws18 bindsym $mod+Mod1+Shift+8 move container to workspace $ws18; workspace $ws18
bindsym $mod+Mod1+Shift+9 move container to workspace $ws19; workspace $ws19 bindsym $mod+Mod1+Shift+9 move container to workspace $ws19; workspace $ws19
bindsym $mod+Mod1+Shift+0 move container to workspace $ws20; workspace $ws20 bindsym $mod+Mod1+Shift+0 move container to workspace $ws20; workspace $ws20
# Configure border style <normal|1pixel|pixel xx|none|pixel> # Configure border style <normal|1pixel|pixel xx|none|pixel>
default_border pixel 3 default_border pixel 3
default_floating_border normal default_floating_border normal
# Hide borders # Hide borders
hide_edge_borders none hide_edge_borders none
# Font for window titles. Will also be used by the bar unless a different font # Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below. # is used in the bar {} block below.
font xft:URWGothic-Book 14 font xft:URWGothic-Book 14
# Use Mouse+$mod to drag floating windows # Use Mouse+$mod to drag floating windows
floating_modifier $mod floating_modifier $mod
# start a terminal # start a terminal
bindsym $mod+Return exec urxvt bindsym $mod+Return exec urxvt
# kill focused window # kill focused window
bindsym $mod+Shift+q kill bindsym $mod+Shift+q kill
# start program launcher # start program launcher
bindsym $mod+d exec --no-startup-id "rofi -theme 'Arc-Dark' -show combi -combi-modes 'run,ssh' -modes combi" bindsym $mod+d exec --no-startup-id "rofi -theme 'Arc-Dark' -show combi -combi-modes 'run,ssh' -modes combi"
# change focus # change focus
# bindsym $mod+i focus left # bindsym $mod+i focus left
# bindsym $mod+n focus down # bindsym $mod+n focus down
# bindsym $mod+e focus up # bindsym $mod+e focus up
# bindsym $mod+o focus right # bindsym $mod+o focus right
bindsym $mod+h focus left bindsym $mod+h focus left
bindsym $mod+j focus down bindsym $mod+j focus down
bindsym $mod+k focus up bindsym $mod+k focus up
bindsym $mod+l focus right bindsym $mod+l focus right
# MARK! # MARK!
# alternatively, you can use the cursor keys: # alternatively, you can use the cursor keys:
bindsym $mod+Left focus left bindsym $mod+Left focus left
bindsym $mod+Down focus down bindsym $mod+Down focus down
bindsym $mod+Up focus up bindsym $mod+Up focus up
bindsym $mod+Right focus right bindsym $mod+Right focus right
# move focused window # move focused window
# bindsym $mod+Shift+i move left # bindsym $mod+Shift+i move left
# bindsym $mod+Shift+n move down # bindsym $mod+Shift+n move down
# bindsym $mod+Shift+e move up # bindsym $mod+Shift+e move up
# bindsym $mod+Shift+o move right # bindsym $mod+Shift+o move right
bindsym $mod+Shift+h move left bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right bindsym $mod+Shift+l move right
# MARK! # MARK!
# alternatively, you can use the cursor keys: # alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right bindsym $mod+Shift+Right move right
# split orientation # split orientation
# bindsym $mod+h split h;exec notify-send 'tile horizontally' # bindsym $mod+h split h;exec notify-send 'tile horizontally'
bindsym $mod+e split h;exec notify-send 'tile horizontally' bindsym $mod+e split h;exec notify-send 'tile horizontally'
# MARK! # MARK!
bindsym $mod+v split v;exec notify-send 'tile vertically' bindsym $mod+v split v;exec notify-send 'tile vertically'
# toggle fullscreen mode for the focused container # toggle fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split) # change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed bindsym $mod+w layout tabbed
# bindsym $mod+l layout toggle split # bindsym $mod+l layout toggle split
# MARK! # MARK!
# toggle tiling / floating # toggle tiling / floating
bindsym $mod+Shift+space floating toggle bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows # change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle bindsym $mod+space focus mode_toggle
# reload the configuration file # reload the configuration file
bindsym $mod+Shift+c reload bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) # restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart bindsym $mod+Shift+r restart
# Resize window (you can also use the mouse for that) # Resize window (you can also use the mouse for that)
bindsym $mod+r mode "resize" bindsym $mod+r mode "resize"
mode "resize" { mode "resize" {
bindsym h resize shrink width 5 px or 5 ppt bindsym h resize shrink width 5 px or 5 ppt
bindsym j resize grow height 5 px or 5 ppt bindsym j resize grow height 5 px or 5 ppt
bindsym k resize shrink height 5 px or 5 ppt bindsym k resize shrink height 5 px or 5 ppt
@ -285,7 +285,7 @@ mode "resize" {
# exit resize mode: Enter or Escape # exit resize mode: Enter or Escape
bindsym Return mode "default" bindsym Return mode "default"
bindsym Escape mode "default" bindsym Escape mode "default"
} }
# Color palette used for the terminal ( ~/.Xresources file ) # Color palette used for the terminal ( ~/.Xresources file )
# Colors are gathered based on the documentation: # Colors are gathered based on the documentation:
@ -299,27 +299,27 @@ mode "resize" {
# to: # to:
# background $term_background # background $term_background
# Same logic applied to everything else. # Same logic applied to everything else.
set_from_resource $term_background background set_from_resource $term_background background
set_from_resource $term_foreground foreground set_from_resource $term_foreground foreground
set_from_resource $term_color0 color0 set_from_resource $term_color0 color0
set_from_resource $term_color1 color1 set_from_resource $term_color1 color1
set_from_resource $term_color2 color2 set_from_resource $term_color2 color2
set_from_resource $term_color3 color3 set_from_resource $term_color3 color3
set_from_resource $term_color4 color4 set_from_resource $term_color4 color4
set_from_resource $term_color5 color5 set_from_resource $term_color5 color5
set_from_resource $term_color6 color6 set_from_resource $term_color6 color6
set_from_resource $term_color7 color7 set_from_resource $term_color7 color7
set_from_resource $term_color8 color8 set_from_resource $term_color8 color8
set_from_resource $term_color9 color9 set_from_resource $term_color9 color9
set_from_resource $term_color10 color10 set_from_resource $term_color10 color10
set_from_resource $term_color11 color11 set_from_resource $term_color11 color11
set_from_resource $term_color12 color12 set_from_resource $term_color12 color12
set_from_resource $term_color13 color13 set_from_resource $term_color13 color13
set_from_resource $term_color14 color14 set_from_resource $term_color14 color14
set_from_resource $term_color15 color15 set_from_resource $term_color15 color15
# Start i3bar to display a workspace bar (plus the system information i3status if available) # Start i3bar to display a workspace bar (plus the system information i3status if available)
bar { bar {
i3bar_command i3bar i3bar_command i3bar
status_command i3status status_command i3status
position bottom position bottom
@ -343,135 +343,135 @@ bar {
binding_mode #16a085 #2C2C2C #F9FAF9 binding_mode #16a085 #2C2C2C #F9FAF9
urgent_workspace #16a085 #FDF6E3 #E5201D urgent_workspace #16a085 #FDF6E3 #E5201D
} }
} }
# Theme colors # Theme colors
# class border backgr. text indic. child_border # class border backgr. text indic. child_border
client.focused #556064 #556064 #80FFF9 #FDF6E3 client.focused #556064 #556064 #80FFF9 #FDF6E3
client.focused_inactive #2F3D44 #2F3D44 #1ABC9C #454948 client.focused_inactive #2F3D44 #2F3D44 #1ABC9C #454948
client.unfocused #2F3D44 #2F3D44 #1ABC9C #454948 client.unfocused #2F3D44 #2F3D44 #1ABC9C #454948
client.urgent #CB4B16 #FDF6E3 #1ABC9C #268BD2 client.urgent #CB4B16 #FDF6E3 #1ABC9C #268BD2
client.placeholder #000000 #0c0c0c #ffffff #000000 client.placeholder #000000 #0c0c0c #ffffff #000000
client.background #2B2C2B client.background #2B2C2B
############################# #############################
### settings for i3-gaps: ### ### settings for i3-gaps: ###
############################# #############################
# Set inner/outer gaps # Set inner/outer gaps
gaps inner 2 gaps inner 2
gaps outer 0 gaps outer 0
# Smart gaps (gaps used if only more than one container on the workspace) # Smart gaps (gaps used if only more than one container on the workspace)
smart_gaps on smart_gaps on
# Smart borders (draw borders around container only if it is not the only container on this workspace) # Smart borders (draw borders around container only if it is not the only container on this workspace)
smart_borders on smart_borders on
# Screen brightness controls # Screen brightness controls
bindcode 232 exec brightnessctl set 5%- bindcode 232 exec brightnessctl set 5%-
bindcode 233 exec --no-startup-id brightnessctl set 5%+ bindcode 233 exec --no-startup-id brightnessctl set 5%+
exec --no-startup-id nm-applet --sm-disable exec --no-startup-id nm-applet --sm-disable
''}"; ''}";
Xresources = "${pkgs.writeText "Xresources" '' Xresources = "${pkgs.writeText "Xresources" ''
Xft.dpi: 96 Xft.dpi: 96
Xft.antialias: true Xft.antialias: true
Xft.hinting: true Xft.hinting: true
Xft.rgba: rgb Xft.rgba: rgb
Xft.autohint: false Xft.autohint: false
Xft.hintstyle: hintslight Xft.hintstyle: hintslight
Xft.lcdfilter: lcddefault Xft.lcdfilter: lcddefault
XTerm*background: #222D31 XTerm*background: #222D31
XTerm*foreground: #d8d8d8 XTerm*foreground: #d8d8d8
XTerm*pointerColor: #1ABB9B XTerm*pointerColor: #1ABB9B
XTerm*faceName: Fixed XTerm*faceName: Fixed
XTerm*faceSize: 11 XTerm*faceSize: 11
XTerm*reverseVideo: on XTerm*reverseVideo: on
XTerm*selectToClipboard: true XTerm*selectToClipboard: true
*background: #222D31 *background: #222D31
*foreground: #d8d8d8 *foreground: #d8d8d8
*fading: 8 *fading: 8
*fadeColor: black *fadeColor: black
*cursorColor: #1ABB9B *cursorColor: #1ABB9B
*pointerColorBackground: #2B2C2B *pointerColorBackground: #2B2C2B
*pointerColorForeground: #16A085 *pointerColorForeground: #16A085
!! black dark/light !! black dark/light
*color0: #222D31 *color0: #222D31
*color8: #585858 *color8: #585858
!! red dark/light !! red dark/light
*color1: #ab4642 *color1: #ab4642
*color9: #ab4642 *color9: #ab4642
!! green dark/light !! green dark/light
*color2: #7E807E *color2: #7E807E
*color10: #8D8F8D *color10: #8D8F8D
!! yellow dark/light !! yellow dark/light
*color3: #f7ca88 *color3: #f7ca88
*color11: #f7ca88 *color11: #f7ca88
!! blue dark/light !! blue dark/light
*color4: #7cafc2 *color4: #7cafc2
*color12: #7cafc2 *color12: #7cafc2
!! magenta dark/light !! magenta dark/light
*color5: #ba8baf *color5: #ba8baf
*color13: #ba8baf *color13: #ba8baf
!! cyan dark/light !! cyan dark/light
*color6: #1ABB9B *color6: #1ABB9B
*color14: #1ABB9B *color14: #1ABB9B
!! white dark/light !! white dark/light
*color7: #d8d8d8 *color7: #d8d8d8
*color15: #f8f8f8 *color15: #f8f8f8
Xcursor.theme: xcursor-breeze Xcursor.theme: xcursor-breeze
Xcursor.size: 0 Xcursor.size: 0
URxvt.font: 9x15,xft:TerminessTTFNerdFontMono URxvt.font: 9x15,xft:TerminessTTFNerdFontMono
! alternative font settings with 'terminus': ! alternative font settings with 'terminus':
! URxvt.font: -xos4-terminus-medium-r-normal--16-160-72-72-c-80-iso10646-1 ! URxvt.font: -xos4-terminus-medium-r-normal--16-160-72-72-c-80-iso10646-1
! URxvt.bold.font: -xos4-terminus-bold-r-normal--16-160-72-72-c-80-iso10646-1 ! URxvt.bold.font: -xos4-terminus-bold-r-normal--16-160-72-72-c-80-iso10646-1
!! terminus names see end of file! !! terminus names see end of file!
URxvt.depth: 32 URxvt.depth: 32
URxvt.background: [100]#0f0f0f URxvt.background: [100]#0f0f0f
URxvt.foreground: #a0a0a0 URxvt.foreground: #a0a0a0
URxvt*scrollBar: false URxvt*scrollBar: false
URxvt*mouseWheelScrollPage: false URxvt*mouseWheelScrollPage: false
URxvt*cursorBlink: true URxvt*cursorBlink: true
URxvt*background: black URxvt*background: black
URxvt*saveLines: 5000 URxvt*saveLines: 5000
! for 'fake' transparency (without Compton) uncomment the following three lines ! for 'fake' transparency (without Compton) uncomment the following three lines
! URxvt*inheritPixmap: true ! URxvt*inheritPixmap: true
! URxvt*transparent: true ! URxvt*transparent: true
! URxvt*shading: 138 ! URxvt*shading: 138
! Normal copy-paste keybindings without perls ! Normal copy-paste keybindings without perls
URxvt.iso14755: false URxvt.iso14755: false
URxvt.keysym.Shift-Control-V: eval:paste_clipboard URxvt.keysym.Shift-Control-V: eval:paste_clipboard
URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard
!Xterm escape codes, word by word movement !Xterm escape codes, word by word movement
URxvt.keysym.Control-Left: \033[1;5D URxvt.keysym.Control-Left: \033[1;5D
URxvt.keysym.Shift-Control-Left: \033[1;6D URxvt.keysym.Shift-Control-Left: \033[1;6D
URxvt.keysym.Control-Right: \033[1;5C URxvt.keysym.Control-Right: \033[1;5C
URxvt.keysym.Shift-Control-Right: \033[1;6C URxvt.keysym.Shift-Control-Right: \033[1;6C
URxvt.keysym.Control-Up: \033[1;5A URxvt.keysym.Control-Up: \033[1;5A
URxvt.keysym.Shift-Control-Up: \033[1;6A URxvt.keysym.Shift-Control-Up: \033[1;6A
URxvt.keysym.Control-Down: \033[1;5B URxvt.keysym.Control-Down: \033[1;5B
URxvt.keysym.Shift-Control-Down: \033[1;6B URxvt.keysym.Shift-Control-Down: \033[1;6B
''}"; ''}";
in in
{ {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
i3status rofi arandr btop i3status rofi arandr btop
firefox firefox
@ -554,4 +554,4 @@ in
}; };
security.polkit.enable = true; security.polkit.enable = true;
} }

View file

@ -2,7 +2,7 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
#################### Git configuration #################### #################### Git configuration ####################
programs.git = { programs.git = {
enable = true; enable = true;
lfs.enable = true; lfs.enable = true;
config = { config = {
@ -20,10 +20,10 @@
gpg.format = "ssh"; gpg.format = "ssh";
commit.gpgsign = "true"; commit.gpgsign = "true";
}; };
}; };
#################### Packages #################### #################### Packages ####################
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
cmake cmake
gnumake gnumake
gcc gcc
@ -35,10 +35,10 @@
python311Packages.pip python311Packages.pip
pypy3 pypy3
rustup rustup
]; ];
#################### Neovim configuration #################### #################### Neovim configuration ####################
programs.neovim = { programs.neovim = {
enable = true; enable = true;
defaultEditor = true; defaultEditor = true;
viAlias = true; viAlias = true;
@ -65,8 +65,8 @@
customRC = customRC =
let let
coc-config = "${pkgs.writeTextDir "coc-settings.json" coc-config = "${pkgs.writeTextDir "coc-settings.json"
'' ''
{ {
"workspace.ignoredFolders": [ "workspace.ignoredFolders": [
"$HOME", "$HOME",
"$HOME/.cargo/**", "$HOME/.cargo/**",
@ -79,8 +79,8 @@
rust-analyzer.inlayHints.expressionAdjustmentHints.hideOutsideUnsafe: true, rust-analyzer.inlayHints.expressionAdjustmentHints.hideOutsideUnsafe: true,
rust-analyzer.inlayHints.lifetimeElisionHints.enable: "always", rust-analyzer.inlayHints.lifetimeElisionHints.enable: "always",
rust-analyzer.inlayHints.lifetimeElisionHints.useParameterNames: true rust-analyzer.inlayHints.lifetimeElisionHints.useParameterNames: true
} }
''}"; ''}";
in in
'' ''
@ -160,6 +160,6 @@
" Nnoremap <S-k> <S-n> " Nnoremap <S-k> <S-n>
" Let NERDTreeMapOpenExpl='\e' " Let NERDTreeMapOpenExpl='\e'
''; '';
};
}; };
}; }
}

View file

@ -67,8 +67,8 @@
]; ];
# HARDWARE SPECIFIC # HARDWARE SPECIFIC
boot.initrd.kernelModules = [ "amdgpu" ]; boot.initrd.kernelModules = [ "amdgpu" ];
hardware = { hardware = {
opengl.extraPackages = with pkgs; [ opengl.extraPackages = with pkgs; [
rocmPackages.clr.icd rocmPackages.clr.icd
]; ];
@ -76,9 +76,9 @@
enable = true; enable = true;
enableGraphical = true; enableGraphical = true;
}; };
}; };
services = { services = {
xserver = { xserver = {
videoDrivers = [ "amdgpu" "modesetting" ]; videoDrivers = [ "amdgpu" "modesetting" ];
deviceSection = '' deviceSection = ''
@ -113,31 +113,31 @@
devmon.enable = true; devmon.enable = true;
gvfs.enable = true; gvfs.enable = true;
udisks2.enable = true; udisks2.enable = true;
}; };
location = { location = {
latitude = 60.17; latitude = 60.17;
longitude = 24.94; longitude = 24.94;
}; };
# Swap + hibernate # Swap + hibernate
swapDevices = [ swapDevices = [
{ {
device = "/var/lib/swapfile"; device = "/var/lib/swapfile";
size = 16*1024; size = 16*1024;
} }
]; ];
boot.resumeDevice = "/dev/mapper/luks-f6e1979b-0dee-4ee9-8170-10490019854b"; boot.resumeDevice = "/dev/mapper/luks-f6e1979b-0dee-4ee9-8170-10490019854b";
boot.kernelParams = [ "resume_offset=44537856" ]; boot.kernelParams = [ "resume_offset=44537856" ];
services.logind = { services.logind = {
lidSwitch = "hibernate"; lidSwitch = "hibernate";
}; };
# Keychron Q11 # Keychron Q11
services.udev.extraRules = '' services.udev.extraRules = ''
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3434", ATTRS{idProduct}=="01e0", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl" KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3434", ATTRS{idProduct}=="01e0", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
''; '';
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
} }

View file

@ -9,9 +9,9 @@
# HARDWARE SPECIFIC # HARDWARE SPECIFIC
services.qemuGuest.enable = true; services.qemuGuest.enable = true;
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
} }

View file

@ -11,9 +11,9 @@
# HARDWARE SPECIFIC # HARDWARE SPECIFIC
services.qemuGuest.enable = true; services.qemuGuest.enable = true;
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
} }

View file

@ -9,9 +9,9 @@
# HARDWARE SPECIFIC # HARDWARE SPECIFIC
services.qemuGuest.enable = true; services.qemuGuest.enable = true;
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
} }

View file

@ -33,12 +33,12 @@ in {
# This allows the wireguard server to route your traffic to the internet and hence be like a VPN # This allows the wireguard server to route your traffic to the internet and hence be like a VPN
# For this to work you have to set the dnsserver IP of your router (or dnsserver of choice) in your clients # For this to work you have to set the dnsserver IP of your router (or dnsserver of choice) in your clients
postSetup = '' postSetup = ''
${pkgs.iptables}/bin/iptables -t nat -A POSTROUTING -s 10.100.0.0/24 -o ${wg_interface} -j MASQUERADE ${pkgs.iptables}/bin/iptables -t nat -A POSTROUTING -s 10.100.0.0/24 -o ${wg_interface} -j MASQUERADE
''; '';
# This undoes the above command # This undoes the above command
postShutdown = '' postShutdown = ''
${pkgs.iptables}/bin/iptables -t nat -D POSTROUTING -s 10.100.0.0/24 -o ${wg_interface} -j MASQUERADE ${pkgs.iptables}/bin/iptables -t nat -D POSTROUTING -s 10.100.0.0/24 -o ${wg_interface} -j MASQUERADE
''; '';
@ -78,14 +78,14 @@ ${pkgs.iptables}/bin/iptables -t nat -D POSTROUTING -s 10.100.0.0/24 -o ${wg_int
}; };
}; };
services.ddclient = { services.ddclient = {
enable = true; enable = true;
domains = [ "netflood.ddnsfree.com" ]; domains = [ "netflood.ddnsfree.com" ];
use = "web, web=checkip.dynu.com/, web-skip='IP Address'"; use = "web, web=checkip.dynu.com/, web-skip='IP Address'";
server = "api.dynu.com"; server = "api.dynu.com";
username = "VSinerva"; username = "VSinerva";
passwordFile = ddPassFile; passwordFile = ddPassFile;
}; };
#################### EVERYTHING BELOW THIS SHOULD NOT NEED TO CHANGE #################### #################### EVERYTHING BELOW THIS SHOULD NOT NEED TO CHANGE ####################
boot = { boot = {

View file

@ -32,4 +32,4 @@
}; };
}; };
}; };
} }

View file

@ -1,20 +0,0 @@
#Main local NFS server with /home/vili etc.
{ config, pkgs, ... }:
{
networking.firewall.allowedTCPPorts = [ 111 2049 4000 4001 4002 20048 ];
networking.firewall.allowedUDPPorts = [ 111 2049 4000 4001 4002 20048 ];
services.nfs.server =
{
enable = true;
# fixed rpc.statd port; for (proxmox) firewall
statdPort = 4000;
lockdPort = 4001;
mountdPort = 4002;
extraNfsdConfig = '''';
createMountPoints = true;
exports = ''
/mnt/srv/nixos-conf 192.168.0.0/23(rw,no_root_squash) 172.16.0.0/24(rw,no_root_squash) 192.168.2.0/23(no_root_squash) 192.168.4.0/22(no_root_squash) 192.168.8.0/23(no_root_squash)
'';
};
}

View file

@ -56,4 +56,4 @@
#TCP/UDP 22000 for transfers and UDP 21027 for discovery #TCP/UDP 22000 for transfers and UDP 21027 for discovery
openDefaultPorts = true; openDefaultPorts = true;
}; };
} }