aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Janzen <jacob.a.s.janzen@gmail.com>2024-09-25 21:12:18 -0500
committerJacob Janzen <jacob.a.s.janzen@gmail.com>2024-09-25 21:12:18 -0500
commitc8d19a52e004abdeaaa73416747d9acb56984446 (patch)
tree2af8810d30588fa2ea1dc3574148b4f6a065b1cc
parent98ddd576c3a5766d3fcace49ea105950c26cde03 (diff)
add nixos config
-rw-r--r--gentoo/.config/discord/settings.org16
l---------gentoo/.config/fastfetch1
-rw-r--r--gentoo/.config/foot/foot.org66
-rw-r--r--gentoo/.config/fuzzel/fuzzel.org35
-rw-r--r--gentoo/.config/mpd/mpd.org68
-rw-r--r--gentoo/.config/ncmpcpp/bindings.org28
-rw-r--r--gentoo/.config/ncmpcpp/config.org16
-rw-r--r--gentoo/.config/sway/config.org284
-rw-r--r--gentoo/.config/sway/poweraction.org9
-rw-r--r--gentoo/.config/sway/powerprompt.org19
-rw-r--r--gentoo/.config/waybar/config.org110
-rw-r--r--gentoo/.config/waybar/style.org124
-rw-r--r--gentoo/.local/share/applications/steam.org286
l---------gentoo/.local/share/fonts1
-rw-r--r--gentoo/.ssh/config.org5
l---------gentoo/clang-format.org1
l---------gentoo/gitconfig.org.gpg1
l---------gentoo/zshrc.org1
-rwxr-xr-xinstall53
l---------nixos/.config/emacs (renamed from gentoo/.config/emacs)0
l---------nixos/.config/nvim (renamed from gentoo/.config/nvim)0
-rw-r--r--nixos/.local/share/applications/emacs.org (renamed from gentoo/.local/share/applications/emacs.org)0
l---------nixos/.wallpaper (renamed from gentoo/.wallpaper)0
-rw-r--r--nixos/flake/configuration.nix141
-rw-r--r--nixos/flake/flake.lock61
-rw-r--r--nixos/flake/flake.nix29
-rw-r--r--nixos/flake/hardware-configuration.nix41
-rw-r--r--nixos/flake/home.nix533
l---------nixos/profile.org (renamed from gentoo/profile.org)0
29 files changed, 835 insertions, 1094 deletions
diff --git a/gentoo/.config/discord/settings.org b/gentoo/.config/discord/settings.org
deleted file mode 100644
index 725b773..0000000
--- a/gentoo/.config/discord/settings.org
+++ /dev/null
@@ -1,16 +0,0 @@
-#+title: Discord settings.json
-There really isn't much to this. I do set =SKIP_HOST_UPDATE= to =true= though to prevent it from trying to auto-update before it appears in my operating system repositories.
-#+begin_src js :tangle ~/.config/discord/settings.json :mkdirp yes
- {
- "IS_MAXIMIZED": false,
- "IS_MINIMIZED": false,
- "SKIP_HOST_UPDATE": true,
- "chromiumSwitches": {},
- "WINDOW_BOUNDS": {
- "x": 0,
- "y": 0,
- "width": 1060,
- "height": 1870
- }
- }
-#+end_src
diff --git a/gentoo/.config/fastfetch b/gentoo/.config/fastfetch
deleted file mode 120000
index a73d684..0000000
--- a/gentoo/.config/fastfetch
+++ /dev/null
@@ -1 +0,0 @@
-../../common/.config/fastfetch \ No newline at end of file
diff --git a/gentoo/.config/foot/foot.org b/gentoo/.config/foot/foot.org
deleted file mode 100644
index 01d7489..0000000
--- a/gentoo/.config/foot/foot.org
+++ /dev/null
@@ -1,66 +0,0 @@
-#+title: Foot Settings
-* Basic Settings
-Use Source Code Pro with Nerd Font in size 10.
-#+begin_src conf :tangle ~/.config/foot/foot.ini :mkdirp yes
- font=SauceCodePro Nerd Font:size=10
-#+end_src
-
-Add 6 pixel padding around the terminal.
-#+begin_src conf :tangle ~/.config/foot/foot.ini :mkdirp yes
- pad=6x6
-#+end_src
-
-* URL
-Use Firefox to open URLs.
-#+begin_src conf :tangle ~/.config/foot/foot.ini :mkdirp yes
- [url]
- launch=firefox ${url}
-#+end_src
-
-* Mouse
-Hide the mouse when typing.
-#+begin_src conf :tangle ~/.config/foot/foot.ini :mkdirp yes
- [mouse]
- hide-when-typing=yes
-#+end_src
-
-* Colours
-The colours are defined here.
-#+begin_src conf :tangle ~/.config/foot/foot.ini :mkdirp yes
- [colors]
-#+end_src
-
-I use a slightly transparent background.
-#+begin_src conf :tangle ~/.config/foot/foot.ini :mkdirp yes
- alpha=0.9
-#+end_src
-
-Set my foreground and background colours.
-#+begin_src conf :tangle ~/.config/foot/foot.ini :mkdirp yes
- background=ece0c9
- foreground=191916
-#+end_src
-
-Set my regular 8 colours.
-#+begin_src conf :tangle ~/.config/foot/foot.ini :mkdirp yes
- regular0=191916
- regular1=ac4438
- regular2=354d52
- regular3=ba9151
- regular4=465b91
- regular5=5b5489
- regular6=4e6062
- regular7=c9ad7a
-#+end_src
-
-Set my bright 8 colours.
-#+begin_src conf :tangle ~/.config/foot/foot.ini :mkdirp yes
- bright0=293c3c
- bright1=d8611c
- bright2=4b7b53
- bright3=d8974b
- bright4=2f3d91
- bright5=735e82
- bright6=6b8f92
- bright7=ece0c9
-#+end_src
diff --git a/gentoo/.config/fuzzel/fuzzel.org b/gentoo/.config/fuzzel/fuzzel.org
deleted file mode 100644
index be2d91a..0000000
--- a/gentoo/.config/fuzzel/fuzzel.org
+++ /dev/null
@@ -1,35 +0,0 @@
-#+title: Fuzzel Configuration
-
-Place Fuzzel above fullscreen windows.
-#+begin_src conf :tangle ~/.config/fuzzel/fuzzel.ini :mkdirp yes
- layer=overlay
-#+end_src
-
-Define fields to search in.
-#+begin_src conf :tangle ~/.config/fuzzel/fuzzel.ini :mkdirp yes
- fields=name,generic,comment,categories,filename,keywords
-#+end_src
-
-Launch terminal programs in =foot=.
-#+begin_src conf :tangle ~/.config/fuzzel/fuzzel.ini :mkdirp yes
- terminal=foot -e
-#+end_src
-
-Use Source Code Pro like the rest of my configuration.
-#+begin_src conf :tangle ~/.config/fuzzel/fuzzel.ini :mkdirp yes
- font=SauceCodePro Nerd Font:size=15
-#+end_src
-
-Set the colours.
-#+begin_src conf :tangle ~/.config/fuzzel/fuzzel.ini :mkdirp yes
- [colors]
- background=ece0c9e6
- selection=cfbc8ce6
- border=ffffff00
-#+end_src
-
-Use a square border.
-#+begin_src conf :tangle ~/.config/fuzzel/fuzzel.ini :mkdirp yes
- [border]
- radius=0
-#+end_src
diff --git a/gentoo/.config/mpd/mpd.org b/gentoo/.config/mpd/mpd.org
deleted file mode 100644
index 4eca326..0000000
--- a/gentoo/.config/mpd/mpd.org
+++ /dev/null
@@ -1,68 +0,0 @@
-#+title: MPD Settings
-* Directories
-Check for music files in =~/Music=.
-#+begin_src conf :tangle ~/.config/mpd/mpd.conf :mkdirp yes
- music_directory "~/Music"
-#+end_src
-
-Put playlists at =~/.config/mpd/playlists=.
-#+begin_src conf :tangle ~/.config/mpd/mpd.conf :mkdirp yes
- playlist_directory "~/.config/mpd/playlists"
-#+end_src
-
-Put database at =~/.config/mpd/database=.
-#+begin_src conf :tangle ~/.config/mpd/mpd.conf :mkdirp yes
- db_file "~/.config/mpd/database"
-#+end_src
-
-Put log file at =~/.config/mpd/log=.
-#+begin_src conf :tangle ~/.config/mpd/mpd.conf :mkdirp yes
- log_file "~/.config/mpd/log"
-#+end_src
-
-Put PID file at =~/.config/mpd/pid=.
-#+begin_src conf :tangle ~/.config/mpd/mpd.conf :mkdirp yes
- pid_file "~/.config/mpd/pid"
-#+end_src
-
-Put the state file at =~/.config/mpd/state=.
-#+begin_src conf :tangle ~/.config/mpd/mpd.conf :mkdirp yes
- state_file "~/.config/mpd/state"
-#+end_src
-
-Put the sticker file at =~/.config/mpd/sticker.sql=.
-#+begin_src conf :tangle ~/.config/mpd/mpd.conf :mkdirp yes
- sticker_file "~/.config/mpd/sticker.sql"
-#+end_src
-
-Use UTF-8 in the file system.
-#+begin_src conf :tangle ~/.config/mpd/mpd.conf :mkdirp yes
- filesystem_charset "UTF-8"
-#+end_src
-
-* Network
-Run MPD on =localhost=.
-#+begin_src conf :tangle ~/.config/mpd/mpd.conf :mkdirp yes
- bind_to_address "localhost"
-#+end_src
-
-* Outputs
-Output to PipeWire.
-#+begin_src conf :tangle ~/.config/mpd/mpd.conf :mkdirp yes
- audio_output {
- type "pipewire"
- name "Pipewire"
- mixer_type "hardware"
- enabled "yes"
- }
-#+end_src
-
-Output to FIFO.
-#+begin_src conf :tangle ~/.config/mpd/mpd.conf :mkdirp yes
- audio_output {
- type "fifo"
- name "my_fifo"
- path "~/.config/mpd/mpd.fifo"
- format "44100:16:2"
- }
-#+end_src
diff --git a/gentoo/.config/ncmpcpp/bindings.org b/gentoo/.config/ncmpcpp/bindings.org
deleted file mode 100644
index 1982a6d..0000000
--- a/gentoo/.config/ncmpcpp/bindings.org
+++ /dev/null
@@ -1,28 +0,0 @@
-#+title: =ncmpcpp= Keyboard Bindings
-Use =vi= motions in =ncmpcpp=.
-#+begin_src conf :tangle ~/.config/ncmpcpp/bindings :mkdirp yes
-def_key "j"
- scroll_down
-def_key "k"
- scroll_up
-def_key "h"
- previous_column
-def_key "l"
- next_column
-def_key "ctrl-b"
- page_up
-def_key "ctrl-u"
- page_up
-def_key "ctrl-f"
- page_down
-def_key "ctrl-d"
- page_down
-def_key "g"
- move_home
-def_key "G"
- move_end
-def_key "n"
- next_found_item
-def_key "N"
- previous_found_item
-#+end_src
diff --git a/gentoo/.config/ncmpcpp/config.org b/gentoo/.config/ncmpcpp/config.org
deleted file mode 100644
index 8195877..0000000
--- a/gentoo/.config/ncmpcpp/config.org
+++ /dev/null
@@ -1,16 +0,0 @@
-#+title: =ncmpcpp= Configuration
-Set the =ncmpcpp= directory to =~/.config/ncmpcpp/=.
-#+begin_src conf :tangle ~/.config/ncmpcpp/config :mkdirp yes
-ncmpcpp_directory = "~/.config/ncmpcpp"
-#+end_src
-
-Set the host/port pair to find the music player daemon at.
-#+begin_src conf :tangle ~/.config/ncmpcpp/config :mkdirp yes
-mpd_host = "localhost"
-mpd_port = "6600"
-#+end_src
-
-Specify the location of the Music directory to be =~/Music=.
-#+begin_src conf :tangle ~/.config/ncmpcpp/config :mkdirp yes
-mpd_music_dir = "~/Music"
-#+end_src
diff --git a/gentoo/.config/sway/config.org b/gentoo/.config/sway/config.org
deleted file mode 100644
index 15e5df3..0000000
--- a/gentoo/.config/sway/config.org
+++ /dev/null
@@ -1,284 +0,0 @@
-#+title: Sway Configuration
-* Variables
-Use =super= as modifier key.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- set $mod Mod4
-#+end_src
-
-Use =vi= motions as directional inputs.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- set $left h
- set $down j
- set $up k
- set $right l
-#+end_src
-
-Use =foot= as default terminal.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- set $term foot
-#+end_src
-
-Use =wofi= as app launcher.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- set $menu fuzzel
-#+end_src
-
-* Startup Application
-Use =dbus= environment.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- exec --no-startup-id dbus-update-activation-environment --all
-#+end_src
-
-Use =mako= as notification daemon.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- exec mako
-#+end_src
-
-Launch PipeWire without =systemd=.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- exec gentoo-pipewire-launcher restart &
-#+end_src
-
-Launch =blueman-applet= as Bluetooth daemon.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- exec blueman-applet
-#+end_src
-
-Launch music player daemon.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- exec mpd
-#+end_src
-
-Launch =mpdscribble= as scrobbler daemon.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- exec mpdscribble
-#+end_src
-
-Launch Emacs daemon.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- exec emacs --daemon
-#+end_src
-
-Launch Proton Mail Bridge at login.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- exec proton-mail-bridge --noninteractive
-#+end_src
-
-Launch Syncthing at login.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- exec syncthing
-#+end_src
-
-* Display
-I use a vertical monitor on the left and horizontal monitor on the right.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- output DP-2 resolution 2560x1440 position 1080 100
- output HDMI-A-2 resolution 1920x1080 transform 90 position 0 0
-#+end_src
-
-Use the file at =~/.wallpaper= as my wallpaper.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- output * bg ~/.wallpaper fill
-#+end_src
-
-Remove borders from windows.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- default_border none
- default_floating_border none
- font pango:monospace 1
-#+end_src
-
-Use 10 pixel gaps.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- gaps inner 10
-#+end_src
-
-Use =waybar= as a top bar.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- bar {
- position top
-
- status_command waybar
- mode invisible
- }
-#+end_src
-
-* Input
-Use pointer acceleration.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- input * {
- accel_profile "adaptive"
- pointer_accel -.5
- }
-#+end_src
-
-* Controls
-Add ability to lock the screen with =swaylock=. Turn off the screen after 15 seconds on lock screen.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- bindsym $mod+Control+l exec swaylock --ignore-empty-password --show-failed-attempts --image ~/.wallpaper
- exec swayidle -w timeout 15 'if pgrep -x swaylock; then swaymsg "output * power off"; fi' resume 'swaymsg "output * power on"'
-#+end_src
-
-Add keybinding to open a terminal emulator.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- bindsym $mod+Return exec $term
-#+end_src
-
-Add keybinding for killing a window.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- bindsym $mod+Shift+q kill
-#+end_src
-
-Add keybinding for opening an app launcher.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- bindsym $mod+d exec $menu
-#+end_src
-
-Holding the modifier key allows moving a window.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- floating_modifier $mod normal
-#+end_src
-
-Add keybinding for reloading the configuration.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- bindsym $mod+Shift+c reload
-#+end_src
-
-Add keybinding to launch logout/power off/restart [[file:powerprompt.org][prompt]] which also activates with the power key.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- bindsym $mod+Shift+e exec bash ~/.config/sway/powerprompt
- bindsym XF86PowerOff exec bash ~/.config/sway/powerprompt
-#+end_src
-
-Change focus keybindings.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- bindsym $mod+$left focus left
- bindsym $mod+$down focus down
- bindsym $mod+$up focus up
- bindsym $mod+$right focus right
-
- bindsym $mod+Left focus left
- bindsym $mod+Down focus down
- bindsym $mod+Up focus up
- bindsym $mod+Right focus right
-#+end_src
-
-Move window keybindings.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- bindsym $mod+Shift+$left move left
- bindsym $mod+Shift+$down move down
- bindsym $mod+Shift+$up move up
- bindsym $mod+Shift+$right move right
-
- bindsym $mod+Shift+Left move left
- bindsym $mod+Shift+Down move down
- bindsym $mod+Shift+Up move up
- bindsym $mod+Shift+Right move right
-#+end_src
-
-Change workspace keybindings.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- bindsym $mod+1 workspace number 1
- bindsym $mod+2 workspace number 2
- bindsym $mod+3 workspace number 3
- bindsym $mod+4 workspace number 4
- bindsym $mod+5 workspace number 5
- bindsym $mod+6 workspace number 6
- bindsym $mod+7 workspace number 7
- bindsym $mod+8 workspace number 8
- bindsym $mod+9 workspace number 9
- bindsym $mod+0 workspace number 10
-#+end_src
-
-Move window to workspace keybindings.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- bindsym $mod+Shift+1 move container to workspace number 1
- bindsym $mod+Shift+2 move container to workspace number 2
- bindsym $mod+Shift+3 move container to workspace number 3
- bindsym $mod+Shift+4 move container to workspace number 4
- bindsym $mod+Shift+5 move container to workspace number 5
- bindsym $mod+Shift+6 move container to workspace number 6
- bindsym $mod+Shift+7 move container to workspace number 7
- bindsym $mod+Shift+8 move container to workspace number 8
- bindsym $mod+Shift+9 move container to workspace number 9
- bindsym $mod+Shift+0 move container to workspace number 10
-#+end_src
-
-Set split direction keybindings.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- bindsym $mod+v splith
- bindsym $mod+s splitv
-#+end_src
-
-Toggle layout keybindings.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- bindsym $mod+e layout toggle split
-#+end_src
-
-Define full screen keybinding.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- bindsym $mod+f fullscreen
-#+end_src
-
-Define toggle floating keybinding.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- bindsym $mod+Shift+space floating toggle
-#+end_src
-
-Move focus between floating and tiled layer keybinding.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- bindsym $mod+space focus mode_toggle
-#+end_src
-
-Focus on the parent window keybinding.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- bindsym $mod+a focus parent
-#+end_src
-
-Keybindings to move a window to the scratchpad and back from it.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- bindsym $mod+Shift+minus move scratchpad
- bindsym $mod+minus scratchpad show
-#+end_src
-
-Add resize keybindings.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- mode "resize" {
- bindsym $left resize shrink width 10px
- bindsym $down resize grow height 10px
- bindsym $up resize shrink height 10px
- bindsym $right resize grow width 10px
-
- bindsym Left resize shrink width 10px
- bindsym Down resize grow height 10px
- bindsym Up resize shrink height 10px
- bindsym Right resize grow width 10px
-
- bindsym Return mode "default"
- bindsym Escape mode "default"
- }
- bindsym $mod+r mode "resize"
-#+end_src
-
-Add screenshot keybinding.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- bindsym $mod+Shift+s exec grim -g "$(slurp)" - | wl-copy
-#+end_src
-
-Add volume keybindings.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- bindsym XF86AudioRaiseVolume exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
- bindsym XF86AudioLowerVolume exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
- bindsym XF86AudioMute exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
-#+end_src
-
-Add pause keybinding.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- bindsym XF86Eject exec mpc toggle
-#+end_src
-
-* Extras
-Load extra configuration.
-#+begin_src conf :tangle ~/.config/sway/config :mkdirp yes
- include /etc/sway/config.d/*
-#+end_src
diff --git a/gentoo/.config/sway/poweraction.org b/gentoo/.config/sway/poweraction.org
deleted file mode 100644
index 68105ca..0000000
--- a/gentoo/.config/sway/poweraction.org
+++ /dev/null
@@ -1,9 +0,0 @@
-#+title: Sway Power Action Script
-Run this shell script from power off menu to either log off, restart, or power off.
-#+begin_src sh :tangle ~/.config/sway/poweraction :mkdirp yes
- rm ~/.swaynaglock
- case $1 in
- logout) swaymsg exit;;
- ,*) doas "/sbin/$1";;
- esac
-#+end_src
diff --git a/gentoo/.config/sway/powerprompt.org b/gentoo/.config/sway/powerprompt.org
deleted file mode 100644
index dcc93fd..0000000
--- a/gentoo/.config/sway/powerprompt.org
+++ /dev/null
@@ -1,19 +0,0 @@
-#+title: Sway Power Prompt Script
-Activate =swaynag= prompt with power-off options if the lock file is not present which executes an [[file:poweraction.org][action]].
-#+begin_src sh :tangle ~/.config/sway/powerprompt :mkdirp yes
- if test -f ~/.swaynaglock; then
- killall swaynag
- rm ~/.swaynaglock
- else
- touch ~/.swaynaglock
- swaynag --background 00000030 --border 00000030 --border-bottom 00000030 --button-background 00000030 --font=SauceCodePro Nerd Font 256\
- -m '' \
- -b '󰍃' \
- 'bash ~/.config/sway/poweraction logout' \
- -b '⏻' \
- 'bash ~/.config/sway/poweraction poweroff' \
- -b '' \
- 'bash ~/.config/sway/poweraction reboot'
- rm ~/.swaynaglock
- fi
-#+end_src
diff --git a/gentoo/.config/waybar/config.org b/gentoo/.config/waybar/config.org
deleted file mode 100644
index 9fc9f95..0000000
--- a/gentoo/.config/waybar/config.org
+++ /dev/null
@@ -1,110 +0,0 @@
-#+title: Waybar Configuration
-* Layout
-Define the layout of the bar with workspaces and scratchpad on the left, the current window in the middle, and music player daemon, sound, network, CPU usage, memory usage, clock, and system tray on the right.
-#+begin_src js :tangle ~/.config/waybar/config :mkdirp yes
- {
- "height": 30,
- "spacing": 4,
- "modules-left": ["sway/workspaces", "sway/scratchpad"],
- "modules-center": ["sway/window"],
- "modules-right": ["mpd", "pulseaudio", "network", "cpu", "memory", "clock", "tray"],
-#+end_src
-
-* Components
-Define scratchpad component. To show an icon and the count of items in it.
-#+begin_src js :tangle ~/.config/waybar/config :mkdirp yes
- "sway/scratchpad": {
- "format": "{icon} {count}",
- "show-empty": false,
- "format-icons": ["", ""],
- "tooltip": true,
- "tooltip-format": "{app}: {title}"
- },
-#+end_src
-
-Define music player daemon component to list the current song, album, artist, and position in the song with an icon representing the status. Clicking it opens a TUI interface to the daemon.
-#+begin_src js :tangle ~/.config/waybar/config :mkdirp yes
- "mpd": {
- "format": "{stateIcon} {artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) [{songPosition}|{queueLength}] 🎵",
- "format-disconnected": "Disconnected 🎵",
- "format-stopped": "{consumeIcon}Stopped 🎵",
- "unknown-tag": "N/A",
- "interval": 2,
- "state-icons": {
- "paused": "",
- "playing": ""
- },
- "tooltip-format": "MPD (connected)",
- "tooltip-format-disconnected": "MPD (disconnected)",
- "on-click": "foot -e ncmpcpp"
- },
-#+end_src
-
-Define tray component.
-#+begin_src js :tangle ~/.config/waybar/config :mkdirp yes
- "tray": {
- "icon-size": 21,
- "spacing": 10,
- "show-passive-items": true
- },
-#+end_src
-
-Define clock component to show the current time and a calendar in a tooltip.
-#+begin_src js :tangle ~/.config/waybar/config :mkdirp yes
- "clock": {
- "format": "{:%H:%M\t%Y-%m-%d}",
- "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>"
- },
-#+end_src
-
-Define CPU usage component to show usage in percent with an icon.
-#+begin_src js :tangle ~/.config/waybar/config :mkdirp yes
- "cpu": {
- "format": "{usage}% ",
- "tooltip": false
- },
-#+end_src
-
-Define memory usage component to show usage in percent with an icon.
-#+begin_src js :tangle ~/.config/waybar/config :mkdirp yes
- "memory": {
- "format": "{}% "
- },
-#+end_src
-
-Define network component to show a Wi-Fi icon if connected and a warning signal if not.
-#+begin_src js :tangle ~/.config/waybar/config :mkdirp yes
- "network": {
- // "interface": "wlp2*", // (Optional) To force the use of this interface
- "format-wifi": "",
- "tooltip": false,
- "format-ethernet": "",
- "format-linked": "",
- "format-disconnected": "⚠",
- "on-click": "kcmshell5 kcm_networkmanagement"
- },
-#+end_src
-
-Define audio component to show the volume level and whether or not it is muted with an icon. Clicking it opens a GUI sound menu.
-#+begin_src js :tangle ~/.config/waybar/config :mkdirp yes
- "pulseaudio": {
- // "scroll-step": 1, // %, can be a float
- "format": "{volume}% {icon}",
- "format-bluetooth": "{volume}% {icon}",
- "format-bluetooth-muted": " {icon}",
- "format-muted": " ",
- "format-source": "{volume}% ",
- "format-source-muted": "",
- "format-icons": {
- "headphone": "",
- "hands-free": "",
- "headset": "",
- "phone": "",
- "portable": "",
- "car": "",
- "default": ["", "", ""]
- },
- "on-click": "pavucontrol"
- }
- }
-#+end_src
diff --git a/gentoo/.config/waybar/style.org b/gentoo/.config/waybar/style.org
deleted file mode 100644
index 3f2ae62..0000000
--- a/gentoo/.config/waybar/style.org
+++ /dev/null
@@ -1,124 +0,0 @@
-#+title: Waybar Styling
-Set global font, colours, and transitions to have a transparent background. The text is white with a small shadow.
-#+begin_src css :tangle ~/.config/waybar/style.css :mkdirp yes
- window#waybar {
- font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif;
- font-size: 13px;
- background: transparent;
- color: #ffffff;
- text-shadow: 1px 1px #64727D;
- transition-property: background-color;
- transition-duration: .5s;
- }
-#+end_src
-
-Remove the border from buttons and make them square.
-#+begin_src css :tangle ~/.config/waybar/style.css :mkdirp yes
- button {
- border: none;
- border-radius: 0;
- }
-#+end_src
-
-Hovering over a button should inherit the background colour and add a white border to the bottom.
-#+begin_src css :tangle ~/.config/waybar/style.css :mkdirp yes
- button:hover {
- background: inherit;
- box-shadow: inset 0 -3px #ffffff;
- }
-#+end_src
-
-Workspace buttons should have white with a small shadow, a little bit of extra horizontal padding, and a transparent background.
-#+begin_src css :tangle ~/.config/waybar/style.css :mkdirp yes
- #workspaces button {
- padding: 0 5px;
- text-shadow: 1px 1px #64727D;
- background-color: transparent;
- color: #ffffff;
- }
-#+end_src
-
-Hovering over a workspace button should darken it.
-#+begin_src css :tangle ~/.config/waybar/style.css :mkdirp yes
- #workspaces button:hover {
- background: rgba(0, 0, 0, 0.2);
- }
-#+end_src
-
-The focused workspace should have a white bottom border.
-#+begin_src css :tangle ~/.config/waybar/style.css :mkdirp yes
- #workspaces button.focused {
- background: transparent;
- box-shadow: inset 0 -3px #ffffff;
- }
-#+end_src
-
-Urgent workspaces should be red.
-#+begin_src css :tangle ~/.config/waybar/style.css :mkdirp yes
- #workspaces button.urgent {
- background-color: #eb4d4b;
- }
-#+end_src
-
-Add extra horizontal padding where needed.
-#+begin_src css :tangle ~/.config/waybar/style.css :mkdirp yes
- #clock,
- #cpu,
- #memory,
- #disk,
- #network,
- #pulseaudio,
- #wireplumber,
- #custom-media,
- #tray,
- #mode,
- #scratchpad,
- #mpd {
- padding: 0 10px;
- }
-#+end_src
-
-Add extra horizontal margins where needed.
-#+begin_src css :tangle ~/.config/waybar/style.css :mkdirp yes
- #window,
- #workspaces {
- margin: 0 4px;
- }
-#+end_src
-
-Omit margins on the leftmost and rightmost workspaces.
-#+begin_src css :tangle ~/.config/waybar/style.css :mkdirp yes
- .modules-left > widget:first-child > #workspaces {
- margin-left: 0;
- }
-
- /* If workspaces is the rightmost module, omit right margin */
- .modules-right > widget:last-child > #workspaces {
- margin-right: 0;
- }
-#+end_src
-
-Passive system tray icons are dimmed.
-#+begin_src css :tangle ~/.config/waybar/style.css :mkdirp yes
- #tray > .passive {
- -gtk-icon-effect: dim;
- }
-#+end_src
-
-Tray icons that need attention are highlighted.
-#+begin_src css :tangle ~/.config/waybar/style.css :mkdirp yes
- #tray > .needs-attention {
- -gtk-icon-effect: highlight;
- }
-#+end_src
-
-The scratchpad should be darkened and transparent when empty.
-#+begin_src css :tangle ~/.config/waybar/style.css :mkdirp yes
- #scratchpad {
- background: rgba(0, 0, 0, 0.2);
- }
-
- #scratchpad.empty {
- background-color: transparent;
- }
-#+end_src
diff --git a/gentoo/.local/share/applications/steam.org b/gentoo/.local/share/applications/steam.org
deleted file mode 100644
index dd30240..0000000
--- a/gentoo/.local/share/applications/steam.org
+++ /dev/null
@@ -1,286 +0,0 @@
-#+title: Steam Desktop File
-This is a copy of the normal Steam desktop entry, but I launch it with =PrefersNonDefaultGPU=false= which I need to make the desktop entry work on my desktop for some reason.
-#+begin_src desktop :tangle ~/.local/share/applications/steam.desktop :mkdirp yes
- [Desktop Entry]
- Name=Steam
- Comment=Application for managing and playing games on Steam
- Comment[pt_BR]=Aplicativo para jogar e gerenciar jogos no Steam
- Comment[bg]=Приложение за ръководене и пускане на игри в Steam
- Comment[cs]=Aplikace pro spravování a hraní her ve službě Steam
- Comment[da]=Applikation til at håndtere og spille spil på Steam
- Comment[nl]=Applicatie voor het beheer en het spelen van games op Steam
- Comment[fi]=Steamin pelien hallintaan ja pelaamiseen tarkoitettu sovellus
- Comment[fr]=Application de gestion et d'utilisation des jeux sur Steam
- Comment[de]=Anwendung zum Verwalten und Spielen von Spielen auf Steam
- Comment[el]=Εφαρμογή διαχείρισης παιχνιδιών στο Steam
- Comment[hu]=Alkalmazás a Steames játékok futtatásához és kezeléséhez
- Comment[it]=Applicazione per la gestione e l'esecuzione di giochi su Steam
- Comment[ja]=Steam 上でゲームを管理&プレイするためのアプリケーション
- Comment[ko]=Steam에 있는 게임을 관리하고 플레이할 수 있는 응용 프로그램
- Comment[no]=Program for å administrere og spille spill på Steam
- Comment[pt_PT]=Aplicação para organizar e executar jogos no Steam
- Comment[pl]=Aplikacja do zarządzania i uruchamiania gier na platformie Steam
- Comment[ro]=Aplicație pentru administrarea și jucatul jocurilor pe Steam
- Comment[ru]=Приложение для игр и управления играми в Steam
- Comment[es]=Aplicación para administrar y ejecutar juegos en Steam
- Comment[sv]=Ett program för att hantera samt spela spel på Steam
- Comment[zh_CN]=管理和进行 Steam 游戏的应用程序
- Comment[zh_TW]=管理並執行 Steam 遊戲的應用程式
- Comment[th]=โปรแกรมสำหรับจัดการและเล่นเกมบน Steam
- Comment[tr]=Steam üzerinden oyun oynama ve düzenleme uygulaması
- Comment[uk]=Програма для керування іграми та запуску ігор у Steam
- Comment[vi]=Ứng dụng để quản lý và chơi trò chơi trên Steam
- Exec=/usr/bin/steam %U
- Icon=steam
- Terminal=false
- Type=Application
- Categories=Network;FileTransfer;Game;
- MimeType=x-scheme-handler/steam;x-scheme-handler/steamlink;
- Actions=Store;Community;Library;Servers;Screenshots;News;Settings;BigPicture;Friends;
- PrefersNonDefaultGPU=false
- X-KDE-RunOnDiscreteGpu=true
-
- [Desktop Action Store]
- Name=Store
- Name[pt_BR]=Loja
- Name[bg]=Магазин
- Name[cs]=Obchod
- Name[da]=Butik
- Name[nl]=Winkel
- Name[fi]=Kauppa
- Name[fr]=Magasin
- Name[de]=Shop
- Name[el]=ΚΑΤΑΣΤΗΜΑ
- Name[hu]=Áruház
- Name[it]=Negozio
- Name[ja]=ストア
- Name[ko]=상점
- Name[no]=Butikk
- Name[pt_PT]=Loja
- Name[pl]=Sklep
- Name[ro]=Magazin
- Name[ru]=Магазин
- Name[es]=Tienda
- Name[sv]=Butik
- Name[zh_CN]=商店
- Name[zh_TW]=商店
- Name[th]=ร้านค้า
- Name[tr]=Mağaza
- Name[uk]=Крамниця
- Name[vi]=Cửa hàng
- Exec=steam steam://store
-
- [Desktop Action Community]
- Name=Community
- Name[pt_BR]=Comunidade
- Name[bg]=Общност
- Name[cs]=Komunita
- Name[da]=Fællesskab
- Name[nl]=Community
- Name[fi]=Yhteisö
- Name[fr]=Communauté
- Name[de]=Community
- Name[el]=Κοινότητα
- Name[hu]=Közösség
- Name[it]=Comunità
- Name[ja]=コミュニティ
- Name[ko]=커뮤니티
- Name[no]=Samfunn
- Name[pt_PT]=Comunidade
- Name[pl]=Społeczność
- Name[ro]=Comunitate
- Name[ru]=Сообщество
- Name[es]=Comunidad
- Name[sv]=Gemenskap
- Name[zh_CN]=社区
- Name[zh_TW]=社群
- Name[th]=ชุมชน
- Name[tr]=Topluluk
- Name[uk]=Спільнота
- Name[vi]=Cộng đồng
- Exec=steam steam://url/SteamIDControlPage
-
- [Desktop Action Library]
- Name=Library
- Name[pt_BR]=Biblioteca
- Name[bg]=Библиотека
- Name[cs]=Knihovna
- Name[da]=Bibliotek
- Name[nl]=Bibliotheek
- Name[fi]=Kokoelma
- Name[fr]=Bibliothèque
- Name[de]=Bibliothek
- Name[el]=Συλλογή
- Name[hu]=Könyvtár
- Name[it]=Libreria
- Name[ja]=ライブラリ
- Name[ko]=라이브러리
- Name[no]=Bibliotek
- Name[pt_PT]=Biblioteca
- Name[pl]=Biblioteka
- Name[ro]=Colecţie
- Name[ru]=Библиотека
- Name[es]=Biblioteca
- Name[sv]=Bibliotek
- Name[zh_CN]=库
- Name[zh_TW]=收藏庫
- Name[th]=คลัง
- Name[tr]=Kütüphane
- Name[uk]=Бібліотека
- Name[vi]=Thư viện
- Exec=steam steam://open/games
-
- [Desktop Action Servers]
- Name=Servers
- Name[pt_BR]=Servidores
- Name[bg]=Сървъри
- Name[cs]=Servery
- Name[da]=Servere
- Name[nl]=Servers
- Name[fi]=Palvelimet
- Name[fr]=Serveurs
- Name[de]=Server
- Name[el]=Διακομιστές
- Name[hu]=Szerverek
- Name[it]=Server
- Name[ja]=サーバー
- Name[ko]=서버
- Name[no]=Tjenere
- Name[pt_PT]=Servidores
- Name[pl]=Serwery
- Name[ro]=Servere
- Name[ru]=Серверы
- Name[es]=Servidores
- Name[sv]=Servrar
- Name[zh_CN]=服务器
- Name[zh_TW]=伺服器
- Name[th]=เซิร์ฟเวอร์
- Name[tr]=Sunucular
- Name[uk]=Сервери
- Name[vi]=Máy chủ
- Exec=steam steam://open/servers
-
- [Desktop Action Screenshots]
- Name=Screenshots
- Name[pt_BR]=Capturas de tela
- Name[bg]=Снимки
- Name[cs]=Snímky obrazovky
- Name[da]=Skærmbilleder
- Name[nl]=Screenshots
- Name[fi]=Kuvankaappaukset
- Name[fr]=Captures d'écran
- Name[de]=Screenshots
- Name[el]=Φωτογραφίες
- Name[hu]=Képernyőmentések
- Name[it]=Screenshot
- Name[ja]=スクリーンショット
- Name[ko]=스크린샷
- Name[no]=Skjermbilder
- Name[pt_PT]=Capturas de ecrã
- Name[pl]=Zrzuty ekranu
- Name[ro]=Capturi de ecran
- Name[ru]=Скриншоты
- Name[es]=Capturas
- Name[sv]=Skärmdumpar
- Name[zh_CN]=截图
- Name[zh_TW]=螢幕擷圖
- Name[th]=ภาพหน้าจอ
- Name[tr]=Ekran Görüntüleri
- Name[uk]=Скріншоти
- Name[vi]=Ảnh chụp
- Exec=steam steam://open/screenshots
-
- [Desktop Action News]
- Name=News
- Name[pt_BR]=Notícias
- Name[bg]=Новини
- Name[cs]=Zprávy
- Name[da]=Nyheder
- Name[nl]=Nieuws
- Name[fi]=Uutiset
- Name[fr]=Actualités
- Name[de]=Neuigkeiten
- Name[el]=Νέα
- Name[hu]=Hírek
- Name[it]=Notizie
- Name[ja]=ニュース
- Name[ko]=뉴스
- Name[no]=Nyheter
- Name[pt_PT]=Novidades
- Name[pl]=Aktualności
- Name[ro]=Știri
- Name[ru]=Новости
- Name[es]=Noticias
- Name[sv]=Nyheter
- Name[zh_CN]=新闻
- Name[zh_TW]=新聞
- Name[th]=ข่าวสาร
- Name[tr]=Haberler
- Name[uk]=Новини
- Name[vi]=Tin tức
- Exec=steam steam://open/news
-
- [Desktop Action Settings]
- Name=Settings
- Name[pt_BR]=Configurações
- Name[bg]=Настройки
- Name[cs]=Nastavení
- Name[da]=Indstillinger
- Name[nl]=Instellingen
- Name[fi]=Asetukset
- Name[fr]=Paramètres
- Name[de]=Einstellungen
- Name[el]=Ρυθμίσεις
- Name[hu]=Beállítások
- Name[it]=Impostazioni
- Name[ja]=設定
- Name[ko]=설정
- Name[no]=Innstillinger
- Name[pt_PT]=Definições
- Name[pl]=Ustawienia
- Name[ro]=Setări
- Name[ru]=Настройки
- Name[es]=Parámetros
- Name[sv]=Inställningar
- Name[zh_CN]=设置
- Name[zh_TW]=設定
- Name[th]=การตั้งค่า
- Name[tr]=Ayarlar
- Name[uk]=Налаштування
- Name[vi]=Thiết lập
- Exec=steam steam://open/settings
-
- [Desktop Action BigPicture]
- Name=Big Picture
- Exec=steam steam://open/bigpicture
-
- [Desktop Action Friends]
- Name=Friends
- Name[pt_BR]=Amigos
- Name[bg]=Приятели
- Name[cs]=Přátelé
- Name[da]=Venner
- Name[nl]=Vrienden
- Name[fi]=Kaverit
- Name[fr]=Amis
- Name[de]=Freunde
- Name[el]=Φίλοι
- Name[hu]=Barátok
- Name[it]=Amici
- Name[ja]=フレンド
- Name[ko]=친구
- Name[no]=Venner
- Name[pt_PT]=Amigos
- Name[pl]=Znajomi
- Name[ro]=Prieteni
- Name[ru]=Друзья
- Name[es]=Amigos
- Name[sv]=Vänner
- Name[zh_CN]=好友
- Name[zh_TW]=好友
- Name[th]=เพื่อน
- Name[tr]=Arkadaşlar
- Name[uk]=Друзі
- Name[vi]=Bạn bè
- Exec=steam steam://open/friends
-#+end_src
diff --git a/gentoo/.local/share/fonts b/gentoo/.local/share/fonts
deleted file mode 120000
index 9ab89c4..0000000
--- a/gentoo/.local/share/fonts
+++ /dev/null
@@ -1 +0,0 @@
-../../../common/.local/share/fonts \ No newline at end of file
diff --git a/gentoo/.ssh/config.org b/gentoo/.ssh/config.org
deleted file mode 100644
index e87c5c4..0000000
--- a/gentoo/.ssh/config.org
+++ /dev/null
@@ -1,5 +0,0 @@
-#+title: SSH Configuration
-Keys should be added to the SSH agent.
-#+begin_src conf :tangle ~/.ssh/config :mkdirp yes
- AddKeysToAgent yes
-#+end_src
diff --git a/gentoo/clang-format.org b/gentoo/clang-format.org
deleted file mode 120000
index 960b79e..0000000
--- a/gentoo/clang-format.org
+++ /dev/null
@@ -1 +0,0 @@
-../common/clang-format.org \ No newline at end of file
diff --git a/gentoo/gitconfig.org.gpg b/gentoo/gitconfig.org.gpg
deleted file mode 120000
index e4cb6ab..0000000
--- a/gentoo/gitconfig.org.gpg
+++ /dev/null
@@ -1 +0,0 @@
-../common/gitconfig.org.gpg \ No newline at end of file
diff --git a/gentoo/zshrc.org b/gentoo/zshrc.org
deleted file mode 120000
index 8a52724..0000000
--- a/gentoo/zshrc.org
+++ /dev/null
@@ -1 +0,0 @@
-../common/zshrc.org \ No newline at end of file
diff --git a/install b/install
index 506e59e..ddb9dc1 100755
--- a/install
+++ b/install
@@ -20,9 +20,9 @@ CWD=$(pwd)
if [ "$(uname)" = 'Darwin' ]; then
echo 'detected Mac OS; installing Mac OS configuration...'
cd ~/.dotfiles/macos/ || exit
-elif [ "$(uname)" = 'Linux' ] && grep -q 'ID=gentoo' /etc/os-release; then
- echo 'detected Gentoo; installing Gentoo configuration...'
- cd ~/.dotfiles/gentoo/ || exit
+elif [ "$(uname)" = 'Linux' ] && grep -q 'ID=nixos' /etc/os-release; then
+ echo 'detected NixOS; installing NixOS configuration...'
+ cd ~/.dotfiles/nixos/ || exit
else
echo 'unsupported operating system'
exit 1
@@ -46,28 +46,35 @@ if [ "$(uname)" = 'Darwin' ]; then
osascript -e "tell application \"System Events\" to tell every desktop to set picture to \"/$HOME/.wallpaper\" as POSIX file"
fi
-echo 'installing fonts...'
-fonts_changed=false
-mkdir -p ~/.local/share/fonts
-if ! test -d ~/.local/share/fonts/ComputerModern; then
- echo ' Computer Modern font missing. Installing...'
- tar xf .local/share/fonts/ComputerModern.tar.gz -C ~/.local/share/fonts >> ~/.update-home.log 2>&1
- fonts_changed=true
-fi
-if ! test -f ~/.local/share/fonts/NFM.ttf; then
- echo ' Nerd Font Mono font missing. Installing...'
- tar xf .local/share/fonts/NFM.tar.gz -C ~/.local/share/fonts >> ~/.update-home.log 2>&1
- fonts_changed=true
-fi
-if ! test -d ~/.local/share/fonts/SauceCodePro; then
- echo ' Source Code Pro Nerd Font missing. Installing...'
- tar xf .local/share/fonts/SauceCodePro.tar.gz -C ~/.local/share/fonts >> ~/.update-home.log 2>&1
- fonts_changed=true
+if [ "$(uname)" = 'Linux' ] && grep -q 'ID=nixos' /etc/os-release; then
+ echo 'installing NixOS flake'
+ sudo nixos-rebuild switch --flake './flake#nixos'
fi
-if [ $fonts_changed = true ]; then
- echo ' updating the font cache...'
- fc-cache -f >> ~/.update-home.log
+fonts_changed=false
+if [ "$(uname)" = 'Darwin' ]; then
+ echo 'installing fonts...'
+ mkdir -p ~/.local/share/fonts
+ if ! test -d ~/.local/share/fonts/ComputerModern; then
+ echo ' Computer Modern font missing. Installing...'
+ tar xf .local/share/fonts/ComputerModern.tar.gz -C ~/.local/share/fonts >> ~/.update-home.log 2>&1
+ fonts_changed=true
+ fi
+ if ! test -f ~/.local/share/fonts/NFM.ttf; then
+ echo ' Nerd Font Mono font missing. Installing...'
+ tar xf .local/share/fonts/NFM.tar.gz -C ~/.local/share/fonts >> ~/.update-home.log 2>&1
+ fonts_changed=true
+ fi
+ if ! test -d ~/.local/share/fonts/SauceCodePro; then
+ echo ' Source Code Pro Nerd Font missing. Installing...'
+ tar xf .local/share/fonts/SauceCodePro.tar.gz -C ~/.local/share/fonts >> ~/.update-home.log 2>&1
+ fonts_changed=true
+ fi
+
+ if [ $fonts_changed = true ]; then
+ echo ' updating the font cache...'
+ fc-cache -f >> ~/.update-home.log
+ fi
fi
cd "$CWD" || exit
diff --git a/gentoo/.config/emacs b/nixos/.config/emacs
index f4e5e56..f4e5e56 120000
--- a/gentoo/.config/emacs
+++ b/nixos/.config/emacs
diff --git a/gentoo/.config/nvim b/nixos/.config/nvim
index a0abd03..a0abd03 120000
--- a/gentoo/.config/nvim
+++ b/nixos/.config/nvim
diff --git a/gentoo/.local/share/applications/emacs.org b/nixos/.local/share/applications/emacs.org
index 6eab52f..6eab52f 100644
--- a/gentoo/.local/share/applications/emacs.org
+++ b/nixos/.local/share/applications/emacs.org
diff --git a/gentoo/.wallpaper b/nixos/.wallpaper
index ec41b94..ec41b94 120000
--- a/gentoo/.wallpaper
+++ b/nixos/.wallpaper
diff --git a/nixos/flake/configuration.nix b/nixos/flake/configuration.nix
new file mode 100644
index 0000000..0999475
--- /dev/null
+++ b/nixos/flake/configuration.nix
@@ -0,0 +1,141 @@
+# Edit this configuration file to define what should be installed on
+# your system. Help is available in the configuration.nix(5) man page, on
+# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
+
+{ config, lib, pkgs, ... }:
+
+{
+ imports =
+ [ # Include the results of the hardware scan.
+ ./hardware-configuration.nix
+ ];
+
+ nix.settings.experimental-features = [ "nix-command" "flakes" ];
+ nixpkgs.config.allowUnfree = true;
+
+ # Use the systemd-boot EFI boot loader.
+ boot.loader.systemd-boot.enable = true;
+ boot.loader.efi.canTouchEfiVariables = true;
+
+ networking.hostName = "nixos"; # Define your hostname.
+ networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
+ hardware.bluetooth.enable = true;
+ hardware.bluetooth.powerOnBoot = true;
+ services.blueman.enable = true;
+
+ security.pam.services.hyprlock = {};
+
+ services.flatpak.enable = true;
+ xdg.portal.enable = true;
+
+ # Set your time zone.
+ time.timeZone = "America/Winnipeg";
+
+ # Select internationalisation properties.
+ i18n.defaultLocale = "en_CA.UTF-8";
+
+ # Enable the X11 windowing system.
+ services.xserver.enable = true;
+ services.greetd = {
+ enable = true;
+ settings = {
+ default_session = {
+ command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember --remember-session --sessions ${pkgs.hyprland}/share/wayland-sessions --cmd \"dbus-run-session Hyprland\"";
+ user = "greeter";
+ };
+ };
+ };
+ systemd.services.greetd.serviceConfig = {
+ Type = "idle";
+ StandardInput = "tty";
+ StanardOutput = "tty";
+ StandardError = "journal";
+ TTYReset = true;
+ TTYVHangup = true;
+ TTYVTDisallocate = true;
+ };
+
+ programs.hyprland.enable = true;
+
+ # Configure keymap in X11
+ services.xserver.xkb.layout = "us";
+
+ # Enable CUPS to print documents.
+ services.printing.enable = true;
+
+ # Enable sound.
+ services.pipewire = {
+ enable = true;
+ pulse.enable = true;
+ };
+
+ # Define a user account. Don't forget to set a password with ‘passwd’.
+ users.users.jane = {
+ shell = pkgs.zsh;
+ isNormalUser = true;
+ extraGroups = [ "networkmanager" "wheel" ]; # Enable ‘sudo’ for the user.
+ packages = with pkgs; [
+ firefox
+ tree
+ ];
+ };
+ programs.zsh.enable = true;
+
+ # List packages installed in system profile. To search, run:
+ environment.systemPackages = with pkgs; [
+ greetd.tuigreet
+ kitty
+ dolphin
+ git
+ neovim
+ wget
+ ];
+ environment.variables.EDITOR = "vim";
+ environment.pathsToLink = [ "/share/zsh" ];
+ environment.sessionVariables.NIXOS_OZONE_WL = "1";
+
+ # Some programs need SUID wrappers, can be configured further or are
+ # started in user sessions.
+ # programs.mtr.enable = true;
+ programs.gnupg.agent = {
+ enable = true;
+ enableSSHSupport = true;
+ };
+
+ # List services that you want to enable:
+
+ # Enable the OpenSSH daemon.
+ services.openssh.enable = true;
+
+ # Open ports in the firewall.
+ # networking.firewall.allowedTCPPorts = [ ... ];
+ # networking.firewall.allowedUDPPorts = [ ... ];
+ # Or disable the firewall altogether.
+ # networking.firewall.enable = false;
+
+ # Copy the NixOS configuration file and link it from the resulting system
+ # (/run/current-system/configuration.nix). This is useful in case you
+ # accidentally delete configuration.nix.
+ # system.copySystemConfiguration = true;
+
+ # This option defines the first version of NixOS you have installed on this particular machine,
+ # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
+ #
+ # Most users should NEVER change this value after the initial install, for any reason,
+ # even if you've upgraded your system to a new NixOS release.
+ #
+ # This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
+ # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
+ # to actually do that.
+ #
+ # This value being lower than the current NixOS release does NOT mean your system is
+ # out of date, out of support, or vulnerable.
+ #
+ # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
+ # and migrated your data accordingly.
+ #
+ # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
+ system.stateVersion = "24.05"; # Did you read the comment?
+
+}
+
diff --git a/nixos/flake/flake.lock b/nixos/flake/flake.lock
new file mode 100644
index 0000000..d863b13
--- /dev/null
+++ b/nixos/flake/flake.lock
@@ -0,0 +1,61 @@
+{
+ "nodes": {
+ "home-manager": {
+ "inputs": {
+ "nixpkgs": "nixpkgs"
+ },
+ "locked": {
+ "lastModified": 1727246346,
+ "narHash": "sha256-TcUaKtya339Asu+g6KTJ8h7KiKcKXKp2V+At+7tksyY=",
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "rev": "1e22ef1518fb175d762006f9cae7f6312b8caedb",
+ "type": "github"
+ },
+ "original": {
+ "id": "home-manager",
+ "type": "indirect"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1726755586,
+ "narHash": "sha256-PmUr/2GQGvFTIJ6/Tvsins7Q43KTMvMFhvG6oaYK+Wk=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "c04d5652cfa9742b1d519688f65d1bbccea9eb7e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_2": {
+ "locked": {
+ "lastModified": 1726937504,
+ "narHash": "sha256-bvGoiQBvponpZh8ClUcmJ6QnsNKw0EMrCQJARK3bI1c=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "9357f4f23713673f310988025d9dc261c20e70c6",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "home-manager": "home-manager",
+ "nixpkgs": "nixpkgs_2"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/nixos/flake/flake.nix b/nixos/flake/flake.nix
new file mode 100644
index 0000000..da41906
--- /dev/null
+++ b/nixos/flake/flake.nix
@@ -0,0 +1,29 @@
+{
+ description = "My NixOS Configuration";
+
+ inputs = {
+ nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
+ };
+
+ outputs = {
+ self,
+ nixpkgs,
+ home-manager,
+ ...
+ }@inputs: {
+ nixosConfigurations.nixos = nixpkgs.lib.nixosSystem {
+ system = "x86_64-linux";
+ specialArgs = { inherit inputs; };
+ modules = [
+ ./configuration.nix
+ home-manager.nixosModules.home-manager
+ {
+ home-manager.backupFileExtension = "bak";
+ home-manager.useGlobalPkgs = true;
+ home-manager.useUserPackages = true;
+ home-manager.users.jane = import ./home.nix;
+ }
+ ];
+ };
+ };
+}
diff --git a/nixos/flake/hardware-configuration.nix b/nixos/flake/hardware-configuration.nix
new file mode 100644
index 0000000..74ef301
--- /dev/null
+++ b/nixos/flake/hardware-configuration.nix
@@ -0,0 +1,41 @@
+# Do not modify this file! It was generated by ‘nixos-generate-config’
+# and may be overwritten by future invocations. Please make changes
+# to /etc/nixos/configuration.nix instead.
+{ config, lib, pkgs, modulesPath, ... }:
+
+{
+ imports =
+ [ (modulesPath + "/installer/scan/not-detected.nix")
+ ];
+
+ boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
+ boot.initrd.kernelModules = [ ];
+ boot.kernelModules = [ "kvm-amd" ];
+ boot.extraModulePackages = [ ];
+
+ fileSystems."/" =
+ { device = "/dev/disk/by-uuid/1cf884d2-8691-4122-85e2-a4edd2d1609f";
+ fsType = "ext4";
+ };
+
+ fileSystems."/boot" =
+ { device = "/dev/disk/by-uuid/ABCB-FAEC";
+ fsType = "vfat";
+ options = [ "fmask=0077" "dmask=0077" ];
+ };
+
+ swapDevices =
+ [ { device = "/dev/disk/by-uuid/675d8161-49c5-4348-9da5-4a7c8ada700f"; }
+ ];
+
+ # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
+ # (the default) this is the recommended approach. When using systemd-networkd it's
+ # still possible to use this option, but it's recommended to use it in conjunction
+ # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
+ networking.useDHCP = lib.mkDefault true;
+ # networking.interfaces.enp10s0.useDHCP = lib.mkDefault true;
+ # networking.interfaces.wlp9s0.useDHCP = lib.mkDefault true;
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}
diff --git a/nixos/flake/home.nix b/nixos/flake/home.nix
new file mode 100644
index 0000000..f619e99
--- /dev/null
+++ b/nixos/flake/home.nix
@@ -0,0 +1,533 @@
+{ config, pkgs, ... }:
+
+{
+ home.username = "jane";
+ home.homeDirectory = "/home/jane";
+
+ home.file.".icons/default".source = "${pkgs.vanilla-dmz}/share/icons/Vanilla-DMZ";
+ xresources.properties = {
+ "Xcursor.size" = 16;
+ };
+
+ fonts.fontconfig.enable = true;
+ home.packages = with pkgs; [
+ discord
+ hyprshot
+ (pkgs.nerdfonts.override { fonts = [ "SourceCodePro" ]; })
+ fuzzel
+ hyfetch
+ htop
+ networkmanagerapplet
+ mako
+ emacs
+ swaybg
+ mpdscribble
+ pavucontrol
+ mpc-cli
+ ];
+
+ programs.ssh = {
+ enable = true;
+ addKeysToAgent = "yes";
+ };
+
+ services.syncthing = {
+ enable = true;
+ };
+
+ programs.hyprlock = {
+ enable = true;
+ settings = {
+ general = {
+ disable_loading_bar = true;
+ grace = 0;
+ hide_cursor = true;
+ no_fade_in = false;
+ };
+ background = [
+ {
+ path = "~/.wallpaper";
+ blur_passes = 3;
+ blur_size = 8;
+ }
+ ];
+ input-field = [
+ {
+ size = "200, 50";
+ position = "0, -80";
+ monitor = "";
+ dots_center = true;
+ fade_on_empty = false;
+ font_color = "rgb(202, 211, 245)";
+ inner_color = "rgb(91, 96, 120)";
+ outer_color = "rgb(24, 25, 38)";
+ outline_thickness = 5;
+ placeholder_text = "<span foreground=\"##cad3f5\">Password...</span>";
+ shadow_passes = 2;
+ }
+ ];
+ };
+ };
+
+ programs.ncmpcpp = {
+ enable = true;
+ bindings = [
+ { key = "j"; command = "scroll_down"; }
+ { key = "k"; command = "scroll_up"; }
+ { key = "h"; command = "previous_column"; }
+ { key = "l"; command = "next_column"; }
+ { key = "g"; command = "move_home"; }
+ { key = "G"; command = "move_end"; }
+ { key = "n"; command = "next_found_item"; }
+ { key = "N"; command = "previous_found_item"; }
+ ];
+ mpdMusicDir = "~/Music";
+ settings = {
+ ncmpcpp_directory = "~/.config/nmcpcpp";
+ mpd_host = "localhost";
+ mpd_port = "6600";
+ };
+ };
+
+ services.mpd = {
+ enable = true;
+ musicDirectory = "~/Music";
+ extraConfig = ''
+ audio_output {
+ type "pipewire"
+ name "Pipewire"
+ mixer_type "hardware"
+ enabled "yes"
+ }
+ '';
+ };
+
+ programs.waybar = {
+ enable = true;
+ settings = {
+ mainBar = {
+ height = 30;
+ spacing = 4;
+ modules-left = [ "hyprland/workspaces" ];
+ modules-center = [ "hyprland/window" ];
+ modules-right = [ "mpd" "pulseaudio" "cpu" "memory" "clock" "tray" ];
+ mpd = {
+ format = "{stateIcon} {artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) [{songPosition}|{queueLength}] 🎵";
+ format-disconnected = "Disconnected 🎵";
+ format-stopped = "{consumeIcon}Stopped 🎵";
+ unknown-tag = "N/A";
+ interval = 2;
+ state-icons = {
+ paused = "";
+ playing = "";
+ };
+ tooltip-format = "MPD (connected)";
+ tooltip-format-disconnected = "MPD (disconnected)";
+ on-click = "foot -e ncmpcpp";
+ };
+ tray = {
+ icon-size = 21;
+ spacing = 10;
+ show-passive-items = true;
+ };
+ clock = {
+ format = "{:%H:%M\t%Y-%m-%d}";
+ tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
+ };
+ cpu = {
+ format = "{usage}% ";
+ tooltip = false;
+ };
+ memory = {
+ format = "{}% ";
+ };
+ network = {
+ format-wifi = "";
+ tooltip = false;
+ format-ethernet = "";
+ format-linked = "";
+ format-disconnected = "⚠";
+ on-click = "kcmshell5 kcm_networkmanagement";
+ };
+ pulseaudio = {
+ format = "{volume}% {icon}";
+ format-bluetooth = "{volume}% {icon}";
+ format-bluetooth-muted = " {icon}";
+ format-muted = " ";
+ format-source = "{volume}% ";
+ format-source-muted = "";
+ format-icons = {
+ headphone = "";
+ hands-free = "";
+ headset = "";
+ phone = "";
+ portable = "";
+ car = "";
+ default = ["" "" ""];
+ };
+ on-click = "pavucontrol";
+ };
+ };
+ };
+ style = ''
+ window#waybar {
+ font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif;
+ font-size: 13px;
+ background: transparent;
+ color: #ffffff;
+ text-shadow: 1px 1px #64727D;
+ transition-property: background-color;
+ transition-duration: .5s;
+ }
+ button {
+ border: none;
+ border-radius: 0;
+ }
+ button:hover {
+ background: inherit;
+ box-shadow: inset 0 -3px #ffffff;
+ }
+ #workspaces button {
+ padding: 0 5px;
+ text-shadow: 1px 1px #64727D;
+ background-color: transparent;
+ color: #ffffff;
+ }
+ #workspaces button:hover {
+ background: rgba(0, 0, 0, 0.2);
+ }
+ #workspaces button.focused {
+ background: transparent;
+ box-shadow: inset 0 -3px #ffffff;
+ }
+ #workspaces button.urgent {
+ background-color: #eb4d4b;
+ }
+ #clock,
+ #cpu,
+ #memory,
+ #disk,
+ #network,
+ #pulseaudio,
+ #wireplumber,
+ #custom-media,
+ #tray,
+ #mode,
+ #scratchpad,
+ #mpd {
+ padding: 0 10px;
+ }
+ #window,
+ #workspaces {
+ margin: 0 4px;
+ }
+ .modules-left > widget:first-child > #workspaces {
+ margin-left: 0;
+ }
+
+ /* If workspaces is the rightmost module, omit right margin */
+ .modules-right > widget:last-child > #workspaces {
+ margin-right: 0;
+ }
+ #tray > .passive {
+ -gtk-icon-effect: dim;
+ }
+ #tray > .needs-attention {
+ -gtk-icon-effect: highlight;
+ }
+ #scratchpad {
+ background: rgba(0, 0, 0, 0.2);
+ }
+
+ #scratchpad.empty {
+ background-color: transparent;
+ }
+ '';
+ };
+
+ programs.fastfetch = {
+ enable = true;
+ settings = {
+ logo = {
+ type = "raw";
+ source = "~/.config/fastfetch/logo.sixel";
+ width = 40;
+ height = 19;
+ };
+ display = {
+ separator = " ";
+ };
+ modules = [
+ "title"
+ {
+ type = "custom";
+ format = "──────────────────────────────────";
+ }
+ {
+ type = "os";
+ key = "";
+ }
+ {
+ type = "kernel";
+ key = "󰞸";
+ }
+ {
+ type = "uptime";
+ key = "";
+ }
+ {
+ type = "packages";
+ key = "";
+ }
+ {
+ type = "shell";
+ key = "";
+ }
+ {
+ type = "display";
+ key = "󰍹";
+ }
+ {
+ type = "wm";
+ key = "";
+ }
+ {
+ type = "terminal";
+ key = "";
+ }
+ {
+ type = "cpu";
+ key = "";
+ }
+ {
+ type = "gpu";
+ key = "";
+ }
+ {
+ type = "memory";
+ key = "";
+ }
+ {
+ type = "disk";
+ key = "";
+ }
+ {
+ type = "locale";
+ key = "";
+ }
+ "break"
+ "colors"
+ ];
+ };
+ };
+
+ programs.zsh = {
+ enable = true;
+ autocd = true;
+ autosuggestion = {
+ enable = true;
+ # highlight = "fg=#ff00ff,bg=cyan,bold,underline";
+ };
+ defaultKeymap = "viins";
+ history = {
+ append = true;
+ ignoreAllDups = true;
+ };
+ shellAliases = {
+ "ll" = "ls -alF";
+ "la" = "ls -a";
+ "l" = "ls -F";
+ "sl" = "ls";
+ };
+ syntaxHighlighting.enable = true;
+ initExtra = ''
+ which lesspipe.sh &> /dev/null && export LESSOPEN="|lesspipe.sh %s"
+ which eza &> /dev/null && alias ls=eza
+ which nvim &> /dev/null && alias vi=nvim && alias vim=nvim
+ parse_git_dirty() {
+ git_status="$(git status 2> /dev/null)"
+ [[ "$git_status" =~ "use \"git push\" to publish your local commits" ]] && echo -n " %F{green}%f"
+ [[ "$git_status" =~ "Changes to be committed:" ]] && echo -n " %F{magenta}%f"
+ [[ "$git_status" =~ "Changes not staged for commit:" ]] && echo -n " %F{yellow}%f"
+ [[ "$git_status" =~ "Untracked files:" ]] && echo -n " %F{red}%f"
+ }
+ setopt prompt_subst
+ autoload -Uz vcs_info
+ precmd () { vcs_info }
+ zstyle ':vcs_info:*' formats ' %F{blue}%b%f' # git(main)
+ PS1='%(?..%B%F{red}[%?%\]%f%b )%F{green}%20<...<%~%<<%f$vcs_info_msg_0_$(parse_git_dirty) $ '
+ '';
+ profileExtra = ''
+ if [ ! -S ~/.ssh/ssh_auth_sock ]; then
+ eval `ssh-agent` > /dev/null
+ ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock
+ fi
+ export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock
+ '';
+ };
+
+ programs.git = {
+ enable = true;
+ userName = "Jacob Janzen";
+ userEmail = "jacob.a.s.janzen@gmail.com";
+ };
+
+ programs.foot.enable = true;
+ programs.foot.settings = {
+ main = {
+ font = "SauceCodePro Nerd Font:size=10";
+ pad = "6x6";
+ };
+ mouse = {
+ hide-when-typing = "yes";
+ };
+ colors = {
+ alpha = "0.9";
+ background = "ece0c9";
+ foreground = "191916";
+ regular0 = "191916";
+ regular1 = "ac4438";
+ regular2 = "354d52";
+ regular3 = "ba9151";
+ regular4 = "465b91";
+ regular5 = "5b5489";
+ regular6 = "4e6062";
+ regular7 = "c9ad7a";
+ bright0 = "293c3c";
+ bright1 = "d8611c";
+ bright2 = "4b7b53";
+ bright3 = "d8974b";
+ bright4 = "2f3d91";
+ bright5 = "735e82";
+ bright6 = "6b8f92";
+ bright7 = "ece0c9";
+ };
+ };
+
+ wayland.windowManager.hyprland.enable = true;
+ wayland.windowManager.hyprland.settings = {
+ monitor = [ "DP-2, 2560x1440@180, 0x0, 1" "HDMI-A-2, 1920x1080@60, -1080x-100, 1, transform, 3" ];
+ "$terminal" = "foot";
+ "$fileManager" = "dolphin";
+ "$menu" = "fuzzel";
+ exec-once = [
+ "nm-applet &"
+ "blueman-applet &"
+ "waybar"
+ "mako"
+ "emacs --daemon"
+ "swaybg -m fill -i ~/.wallpaper"
+ "mpdscribble"
+ ];
+ env = [
+ "XCURSOR_SIZE,24"
+ "HYPRCURSOR_SIZE,24"
+ ];
+ general = {
+ gaps_in = 5;
+ gaps_out = 20;
+ border_size = 2;
+ resize_on_border = false;
+ layout = "dwindle";
+ "col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
+ "col.inactive_border" = "rgba(595959aa)";
+ };
+ decoration = {
+ rounding = 10;
+ active_opacity = 1.0;
+ inactive_opacity = 1.0;
+ drop_shadow = true;
+ shadow_range = 4;
+ shadow_render_power = 3;
+ "col.shadow" = "rgba(1a1a1aee)";
+ blur = {
+ enabled = true;
+ size = 3;
+ passes = 1;
+ vibrancy = "0.1696";
+ };
+ };
+ animations = {
+ enabled = true;
+ bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
+ animation = [
+ "windows, 1, 7, myBezier"
+ "windowsOut, 1, 7, default, popin 80%"
+ "border, 1, 10, default" "borderangle, 1, 8, default"
+ "fade, 1, 7, default" "workspaces, 1, 6, default"
+ ];
+ };
+ dwindle = {
+ pseudotile = true;
+ preserve_split = true;
+ };
+ master = {
+ new_status = "master";
+ };
+ input = {
+ kb_layout = "us";
+ follow_mouse = 1;
+ sensitivity = 0;
+ };
+ "$mainMod" = "SUPER";
+ bind = [
+ "$mainMod, RETURN, exec, $terminal"
+ "$mainMod SHIFT, Q, killactive"
+ "$mainMod, E, exec, $fileManager"
+ "$mainMod SHIFT, SPACE, togglefloating"
+ "$mainMod, D, exec, $menu"
+ "$mainMod, P, pseudo"
+ "$mainMod SHIFT, E, togglesplit"
+ "$mainMod, H, movefocus, l"
+ "$mainMod, J, movefocus, d"
+ "$mainMod, K, movefocus, u"
+ "$mainMod, L, movefocus, r"
+ "$mainMod, 1, workspace, 1"
+ "$mainMod, 2, workspace, 2"
+ "$mainMod, 3, workspace, 3"
+ "$mainMod, 4, workspace, 4"
+ "$mainMod, 5, workspace, 5"
+ "$mainMod, 6, workspace, 6"
+ "$mainMod, 7, workspace, 7"
+ "$mainMod, 8, workspace, 8"
+ "$mainMod, 9, workspace, 9"
+ "$mainMod, 0, workspace, 10"
+ "$mainMod SHIFT, 1, movetoworkspace, 1"
+ "$mainMod SHIFT, 2, movetoworkspace, 2"
+ "$mainMod SHIFT, 3, movetoworkspace, 3"
+ "$mainMod SHIFT, 4, movetoworkspace, 4"
+ "$mainMod SHIFT, 5, movetoworkspace, 5"
+ "$mainMod SHIFT, 6, movetoworkspace, 6"
+ "$mainMod SHIFT, 7, movetoworkspace, 7"
+ "$mainMod SHIFT, 8, movetoworkspace, 8"
+ "$mainMod SHIFT, 9, movetoworkspace, 9"
+ "$mainMod SHIFT, 0, movetoworkspace, 10"
+ "$mainMod CONTROL, L, exec, hyprlock"
+ "$mainMod, S, exec, hyprshot -m window --clipboard-only"
+ "$mainMod SHIFT, S, exec, hyprshot -m region --clipboard-only"
+ "$mainMod SHIFT CONTROL, S, exec, hyprshot -m output --clipboard-only"
+ ];
+ bindel = [
+ ",XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
+ ",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
+ ",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
+ ",XF86Eject, exec, mpc toggle"
+ ];
+ bindm = [
+ "$mainMod, mouse:272, movewindow"
+ "$mainMod, mouse:273, resizewindow"
+ ];
+ windowrulev2 = "suppressevent maximize, class:.*";
+ };
+ wayland.windowManager.hyprland.extraConfig = ''
+###################
+### KEYBINDINGS ###
+###################
+# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
+bind = $mainMod, M, exit,
+ '';
+
+ home.stateVersion = "24.05";
+
+ programs.home-manager.enable = true;
+}
diff --git a/gentoo/profile.org b/nixos/profile.org
index 7db75e0..7db75e0 120000
--- a/gentoo/profile.org
+++ b/nixos/profile.org