Desktop usability adjustments #1
							
								
								
									
										35
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								README.md
									
									
									
									
									
								
							| @@ -22,14 +22,22 @@ Don't forget to add the `#<host>` to the end of the target to specify the host c | |||||||
|  |  | ||||||
| ## Usage | ## Usage | ||||||
| ### Deploying to a machine | ### Deploying to a machine | ||||||
| Run  | Run | ||||||
| ```bash | ```bash | ||||||
| nixos-rebuild switch --flake <target>#<machine> | nixos-rebuild switch --flake <target>#<machine> | ||||||
| # for instance | # for instance | ||||||
| nixos-rebuild switch --flake .#spectre | nixos-rebuild switch --flake .#Nixtre | ||||||
| ``` | ``` | ||||||
| to apply the configuration. | to apply the configuration. | ||||||
|  |  | ||||||
|  | ### Using `nh` | ||||||
|  | Updating from a local config is now easy - since `nh` is already specified as installed: | ||||||
|  | ``` | ||||||
|  | nix flake update | ||||||
|  | nh os switch . | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  |  | ||||||
| ### Installer iso | ### Installer iso | ||||||
| To build an installer iso, run | To build an installer iso, run | ||||||
| ```bash | ```bash | ||||||
| @@ -38,11 +46,32 @@ nix build .#nixosConfigurations.bcachefs-iso.config.system.build.isoImage | |||||||
| This will create an iso image in the result directory. | This will create an iso image in the result directory. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ## Installation | ||||||
|  | TODO - disable root user | ||||||
|  | ``` | ||||||
|  |  I install with --no-root-passwd and set users.mutableUsers = false in configuration.nix | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ## TODO | ||||||
|  | - Have a wofi power menu with https://github.com/RiteshChepuri/wofi-scripts/blob/main/wofi-power-menu | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ## Inspirations | ## Inspirations | ||||||
| - https://github.com/the-nix-way/dev-templates | - https://github.com/the-nix-way/dev-templates | ||||||
| - https://fasterthanli.me/series/building-a-rust-service-with-nix/part-10 | - https://fasterthanli.me/series/building-a-rust-service-with-nix/part-10 | ||||||
| - https://ianthehenry.com/posts/how-to-learn-nix/profiles/ | - https://ianthehenry.com/posts/how-to-learn-nix/profiles | ||||||
| - https://github.com/JohnRTitor/nix-conf | - https://github.com/JohnRTitor/nix-conf | ||||||
| - https://github.com/mwaldleben/nix-config | - https://github.com/mwaldleben/nix-config | ||||||
| - https://github.com/anotherhadi/nixy | - https://github.com/anotherhadi/nixy | ||||||
|  | - https://github.com/Numb-0/nix-0 | ||||||
|  | - https://github.com/Frost-Phoenix/nixos-config | ||||||
|  | - https://github.com/elifouts/Dotfiles | ||||||
|  | - https://github.com/nomadics9/nixcfg | ||||||
|  | - https://github.com/Daholli/nixos-config | ||||||
|  | - https://github.com/khaneliman/khanelinix | ||||||
|  | - https://github.com/NotAShelf/nyx | ||||||
|  | - https://copeberg.org/bloxx12/nichts | ||||||
|  | - https://github.com/fufexan/dotfiles | ||||||
|  | - https://github.com/spikespaz/dotfiles | ||||||
|   | |||||||
							
								
								
									
										471
									
								
								dconf.conf
									
									
									
									
									
								
							
							
						
						
									
										471
									
								
								dconf.conf
									
									
									
									
									
								
							| @@ -1,471 +0,0 @@ | |||||||
| [io/github/celluloid-player/celluloid] |  | ||||||
| settings-migrated=true |  | ||||||
|  |  | ||||||
| [io/github/celluloid-player/celluloid/window-state] |  | ||||||
| height=425 |  | ||||||
| loop-playlist=false |  | ||||||
| maximized=true |  | ||||||
| playlist-width=250 |  | ||||||
| show-controls=true |  | ||||||
| show-playlist=false |  | ||||||
| volume=0.80000000000000004 |  | ||||||
| width=296 |  | ||||||
|  |  | ||||||
| [org/gnome/Console] |  | ||||||
| audible-bell=false |  | ||||||
| font-scale=1.0 |  | ||||||
| last-window-maximised=true |  | ||||||
| last-window-size=(1131, 1048) |  | ||||||
| theme='night' |  | ||||||
|  |  | ||||||
| [org/gnome/Extensions] |  | ||||||
| window-maximized=true |  | ||||||
|  |  | ||||||
| [org/gnome/Loupe] |  | ||||||
| show-properties=true |  | ||||||
|  |  | ||||||
| [org/gnome/Weather] |  | ||||||
| locations=[<(uint32 2, <('Zürich', 'LSZH', true, [(0.82874050067087668, 0.14893475701908529)], [(0.82670429484574492, 0.14922565104551519)])>)>] |  | ||||||
| window-height=495 |  | ||||||
| window-maximized=false |  | ||||||
| window-width=992 |  | ||||||
|  |  | ||||||
| [org/gnome/World/Secrets] |  | ||||||
| last-opened-database='davs://nextcloud.kluster.moll.re/remote.php/dav/files/admin/Various/KeePass/keepass.kdbx' |  | ||||||
| last-opened-list=['davs://nextcloud.kluster.moll.re/remote.php/dav/files/admin/Various/KeePass/keepass.kdbx'] |  | ||||||
| window-size=[960, 1048] |  | ||||||
|  |  | ||||||
| [org/gnome/calculator] |  | ||||||
| accuracy=9 |  | ||||||
| angle-units='degrees' |  | ||||||
| base=10 |  | ||||||
| button-mode='basic' |  | ||||||
| number-format='automatic' |  | ||||||
| refresh-interval=0 |  | ||||||
| show-thousands=false |  | ||||||
| show-zeroes=false |  | ||||||
| source-currency='' |  | ||||||
| source-units='degree' |  | ||||||
| target-currency='' |  | ||||||
| target-units='radian' |  | ||||||
| window-maximized=false |  | ||||||
| window-size=(360, 740) |  | ||||||
| word-size=64 |  | ||||||
|  |  | ||||||
| [org/gnome/calendar] |  | ||||||
| active-view='month' |  | ||||||
| window-maximized=true |  | ||||||
| window-size=(768, 600) |  | ||||||
|  |  | ||||||
| [org/gnome/clocks/state/window] |  | ||||||
| maximized=false |  | ||||||
| panel-id='world' |  | ||||||
| size=(870, 690) |  | ||||||
|  |  | ||||||
| [org/gnome/control-center] |  | ||||||
| last-panel='display' |  | ||||||
| window-state=(1718, 851, false) |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/app-folders] |  | ||||||
| folder-children=['Utilities', 'YaST', '1aa8a471-a3d4-448f-979d-708f041bd93e', '9a796cbb-fc11-4e0c-92ea-bbf29cc78df0', 'a683fc46-9a24-41c2-91e9-7637c554fdc4', 'aee3ca9c-d66d-42f4-9b76-4dda08403814', '599d49f8-20cb-482c-a619-451cf4f561a3', '212ada4d-a2fa-4063-b6b1-24b711d4e9ab', '862c0f6e-86e2-40fe-a06f-5d638a5bc5e7', '90c1ffb4-572f-4a17-8793-a248f0ee26e4', 'f5961050-635b-4ad1-91e1-3a67538a236b', '5ea1c1fc-c589-42d3-bbaa-05428cb9e434', '496a9ca3-5d6b-4231-9434-cf1da320fe55'] |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/app-folders/folders/1aa8a471-a3d4-448f-979d-708f041bd93e] |  | ||||||
| apps=['bvnc.desktop', 'avahi-discover.desktop', 'bssh.desktop', 'thorium-shell.desktop', 'org.gnome.PowerStats.desktop', 'stoken-gui-small.desktop', 'stoken-gui.desktop', 'qvidcap.desktop', 'qv4l2.desktop', 'electron25.desktop', 'btop.desktop', 'lstopo.desktop', 'mpv.desktop', 'gtk-lshw.desktop'] |  | ||||||
| name='Useless' |  | ||||||
| translate=false |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/app-folders/folders/212ada4d-a2fa-4063-b6b1-24b711d4e9ab] |  | ||||||
| apps=['jhelioviewer.desktop'] |  | ||||||
| name='Unnamed Folder' |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/app-folders/folders/496a9ca3-5d6b-4231-9434-cf1da320fe55] |  | ||||||
| apps=['com.github.flxzt.rnote.desktop', 'dev.linwood.butterfly.desktop', 'com.github.scrivanolabs.scrivano.desktop'] |  | ||||||
| name='Unnamed Folder' |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/app-folders/folders/599d49f8-20cb-482c-a619-451cf4f561a3] |  | ||||||
| apps=['electron28.desktop', 'electron30.desktop', 'electron29.desktop', 'cmake-gui.desktop', 'electron31.desktop', 'jshell-java17-openjdk.desktop', 'jconsole-java17-openjdk.desktop'] |  | ||||||
| name='Programming' |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/app-folders/folders/5ea1c1fc-c589-42d3-bbaa-05428cb9e434] |  | ||||||
| apps=['com.calibre_ebook.calibre.ebook-viewer.desktop', 'com.calibre_ebook.calibre.lrfviewer.desktop', 'com.calibre_ebook.calibre.ebook-edit.desktop', 'com.calibre_ebook.calibre.desktop'] |  | ||||||
| name='Calibre' |  | ||||||
| translate=false |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/app-folders/folders/862c0f6e-86e2-40fe-a06f-5d638a5bc5e7] |  | ||||||
| apps=['net.danigm.timetrack.desktop'] |  | ||||||
| name='Unnamed Folder' |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/app-folders/folders/90c1ffb4-572f-4a17-8793-a248f0ee26e4] |  | ||||||
| apps=['com.mattjakeman.ExtensionManager.desktop', 'org.gnome.Extensions.desktop'] |  | ||||||
| name='Accessories' |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/app-folders/folders/9a796cbb-fc11-4e0c-92ea-bbf29cc78df0] |  | ||||||
| apps=['Deep Rock Galactic.desktop', 'The Sims 4.desktop', 'steam.desktop', 'org.ryujinx.Ryujinx.desktop', 'net.veloren.airshipper.desktop', 'org.DolphinEmu.dolphin-emu.desktop', 'discord.desktop', 'simutrans.desktop', 'Darksiders Warmastered Edition.desktop', 'gearlever_curseforge_cd3cee.desktop'] |  | ||||||
| name='Games' |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/app-folders/folders/Utilities] |  | ||||||
| apps=['gnome-abrt.desktop', 'gnome-system-log.desktop', 'nm-connection-editor.desktop', 'org.gnome.baobab.desktop', 'org.gnome.Connections.desktop', 'org.gnome.DejaDup.desktop', 'org.gnome.Dictionary.desktop', 'org.gnome.DiskUtility.desktop', 'org.gnome.eog.desktop', 'org.gnome.FileRoller.desktop', 'org.gnome.fonts.desktop', 'org.gnome.seahorse.Application.desktop', 'org.gnome.tweaks.desktop', 'org.gnome.Usage.desktop', 'vinagre.desktop'] |  | ||||||
| categories=['X-GNOME-Utilities'] |  | ||||||
| excluded-apps=['org.gnome.Evince.desktop'] |  | ||||||
| name='X-GNOME-Utilities.directory' |  | ||||||
| translate=true |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/app-folders/folders/YaST] |  | ||||||
| categories=['X-SuSE-YaST'] |  | ||||||
| name='suse-yast.directory' |  | ||||||
| translate=true |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/app-folders/folders/a683fc46-9a24-41c2-91e9-7637c554fdc4] |  | ||||||
| apps=['jconsole-java-openjdk.desktop', 'jshell-java-openjdk.desktop'] |  | ||||||
| name='Unnamed Folder' |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/app-folders/folders/aee3ca9c-d66d-42f4-9b76-4dda08403814] |  | ||||||
| apps=['codium-wayland.desktop', 'codium.desktop'] |  | ||||||
| name='Accessories' |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/app-folders/folders/f5961050-635b-4ad1-91e1-3a67538a236b] |  | ||||||
| apps=['cafe.avery.Delfin.desktop'] |  | ||||||
| name='Unnamed Folder' |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/background] |  | ||||||
| color-shading-type='solid' |  | ||||||
| picture-options='zoom' |  | ||||||
| picture-uri='file:///mnt/media/@Bulk/Wallpaper/Linux/arch_btw_Gilded Glow.png' |  | ||||||
| picture-uri-dark='file:///mnt/media/@Bulk/Wallpaper/Linux/arch_btw_Gilded Glow.png' |  | ||||||
| primary-color='#000000000000' |  | ||||||
| secondary-color='#000000000000' |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/calendar] |  | ||||||
| show-weekdate=false |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/input-sources] |  | ||||||
| per-window=true |  | ||||||
| sources=[('xkb', 'de'), ('xkb', 'ch'), ('xkb', 'us')] |  | ||||||
| xkb-options=['lv3:ralt_switch'] |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/interface] |  | ||||||
| clock-show-weekday=true |  | ||||||
| color-scheme='prefer-dark' |  | ||||||
| cursor-theme='Qogir' |  | ||||||
| enable-animations=true |  | ||||||
| font-antialiasing='rgba' |  | ||||||
| font-hinting='slight' |  | ||||||
| font-name='Cantarell 11' |  | ||||||
| icon-theme='Qogir' |  | ||||||
| monospace-font-name='Fira Code 10' |  | ||||||
| show-battery-percentage=true |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/peripherals/keyboard] |  | ||||||
| numlock-state=true |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/peripherals/mouse] |  | ||||||
| natural-scroll=false |  | ||||||
| speed=0.20851063829787231 |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/peripherals/stylus/default-04f3:2817] |  | ||||||
| eraser-pressure-curve=[0, 0, 100, 100] |  | ||||||
| pressure-curve=[0, 0, 100, 100] |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/peripherals/tablets/04f3:2817] |  | ||||||
| area=[0.0, 0.0, 0.0, 0.0] |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/peripherals/touchpad] |  | ||||||
| speed=0.16872427983539096 |  | ||||||
| tap-to-click=true |  | ||||||
| two-finger-scrolling-enabled=true |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/privacy] |  | ||||||
| old-files-age=uint32 30 |  | ||||||
| recent-files-max-age=30 |  | ||||||
| report-technical-problems=false |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/remote-desktop/rdp] |  | ||||||
| enable=false |  | ||||||
| screen-share-mode='extend' |  | ||||||
| tls-cert='/home/remy/.local/share/gnome-remote-desktop/rdp-tls.crt' |  | ||||||
| tls-key='/home/remy/.local/share/gnome-remote-desktop/rdp-tls.key' |  | ||||||
| view-only=true |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/screensaver] |  | ||||||
| color-shading-type='solid' |  | ||||||
| picture-options='zoom' |  | ||||||
| picture-uri='file:///home/remy/.local/share/backgrounds/2022-09-12-22-02-00-arch_btw_In%20the%20Noise.png' |  | ||||||
| primary-color='#000000000000' |  | ||||||
| secondary-color='#000000000000' |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/search-providers] |  | ||||||
| disabled=@as [] |  | ||||||
| sort-order=['org.gnome.Contacts.desktop', 'org.gnome.Documents.desktop', 'org.gnome.Nautilus.desktop'] |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/session] |  | ||||||
| idle-delay=uint32 300 |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/sound] |  | ||||||
| event-sounds=true |  | ||||||
| theme-name='__custom' |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/wm/keybindings] |  | ||||||
| maximize=@as [] |  | ||||||
| switch-input-source=@as [] |  | ||||||
| switch-input-source-backward=@as [] |  | ||||||
| unmaximize=@as [] |  | ||||||
|  |  | ||||||
| [org/gnome/desktop/wm/preferences] |  | ||||||
| action-middle-click-titlebar='lower' |  | ||||||
| action-right-click-titlebar='none' |  | ||||||
| button-layout='appmenu:close' |  | ||||||
|  |  | ||||||
| [org/gnome/eog/ui] |  | ||||||
| sidebar=false |  | ||||||
|  |  | ||||||
| [org/gnome/eog/view] |  | ||||||
| background-color='rgb(0,0,0)' |  | ||||||
| use-background-color=true |  | ||||||
|  |  | ||||||
| [org/gnome/evince] |  | ||||||
| document-directory=@ms 'file:///home/remy/Downloads' |  | ||||||
|  |  | ||||||
| [org/gnome/evince/default] |  | ||||||
| continuous=true |  | ||||||
| dual-page=false |  | ||||||
| dual-page-odd-left=false |  | ||||||
| enable-spellchecking=true |  | ||||||
| fullscreen=false |  | ||||||
| inverted-colors=false |  | ||||||
| show-sidebar=false |  | ||||||
| sidebar-page='thumbnails' |  | ||||||
| sidebar-size=133 |  | ||||||
| sizing-mode='free' |  | ||||||
| window-ratio=(1.4368686868686869, 1.8659493444606587) |  | ||||||
| zoom=0.46691813714666941 |  | ||||||
|  |  | ||||||
| [org/gnome/evolution-data-server] |  | ||||||
| migrated=true |  | ||||||
| network-monitor-gio-name='' |  | ||||||
|  |  | ||||||
| [org/gnome/file-roller/dialogs/add] |  | ||||||
| current-folder='file:///home/remy/Downloads' |  | ||||||
| exclude-files='' |  | ||||||
| exclude-folders='' |  | ||||||
| include-files='*' |  | ||||||
| no-symlinks=true |  | ||||||
| selected-files=@as [] |  | ||||||
| update=false |  | ||||||
|  |  | ||||||
| [org/gnome/file-roller/dialogs/extract] |  | ||||||
| height=800 |  | ||||||
| recreate-folders=true |  | ||||||
| skip-newer=false |  | ||||||
| width=1000 |  | ||||||
|  |  | ||||||
| [org/gnome/file-roller/file-selector] |  | ||||||
| show-hidden=false |  | ||||||
| sidebar-size=168 |  | ||||||
| window-size=(-1, -1) |  | ||||||
|  |  | ||||||
| [org/gnome/file-roller/listing] |  | ||||||
| list-mode='as-folder' |  | ||||||
| name-column-width=410 |  | ||||||
| show-path=false |  | ||||||
| sort-method='name' |  | ||||||
| sort-type='descending' |  | ||||||
|  |  | ||||||
| [org/gnome/file-roller/ui] |  | ||||||
| sidebar-width=200 |  | ||||||
| window-height=1001 |  | ||||||
| window-width=960 |  | ||||||
|  |  | ||||||
| [org/gnome/libgnomekbd/preview] |  | ||||||
| height=611 |  | ||||||
| width=1464 |  | ||||||
| x=240 |  | ||||||
| y=135 |  | ||||||
|  |  | ||||||
| [org/gnome/mutter] |  | ||||||
| attach-modal-dialogs=false |  | ||||||
| edge-tiling=false |  | ||||||
| experimental-features=['kms-modifiers'] |  | ||||||
|  |  | ||||||
| [org/gnome/mutter/keybindings] |  | ||||||
| toggle-tiled-left=@as [] |  | ||||||
| toggle-tiled-right=@as [] |  | ||||||
|  |  | ||||||
| [org/gnome/nautilus/compression] |  | ||||||
| default-compression-format='zip' |  | ||||||
|  |  | ||||||
| [org/gnome/nautilus/preferences] |  | ||||||
| default-folder-viewer='list-view' |  | ||||||
| migrated-gtk-settings=true |  | ||||||
| search-filter-time-type='last_modified' |  | ||||||
| search-view='list-view' |  | ||||||
|  |  | ||||||
| [org/gnome/nautilus/window-state] |  | ||||||
| initial-size=(1920, 1048) |  | ||||||
| maximized=true |  | ||||||
| sidebar-width=157 |  | ||||||
|  |  | ||||||
| [org/gnome/power-manager] |  | ||||||
| info-history-time=604800 |  | ||||||
| info-history-type='charge' |  | ||||||
| info-last-device='/org/freedesktop/UPower/devices/battery_BAT0' |  | ||||||
| info-page-number=1 |  | ||||||
| info-stats-type='discharge-accuracy' |  | ||||||
|  |  | ||||||
| [org/gnome/settings-daemon/peripherals/touchscreen] |  | ||||||
| orientation-lock=false |  | ||||||
|  |  | ||||||
| [org/gnome/settings-daemon/plugins/media-keys] |  | ||||||
| custom-keybindings=['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/'] |  | ||||||
|  |  | ||||||
| [org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0] |  | ||||||
| binding='<Super>space' |  | ||||||
| command='ulauncher' |  | ||||||
| name='Ulauncher' |  | ||||||
|  |  | ||||||
| [org/gnome/settings-daemon/plugins/power] |  | ||||||
| power-button-action='hibernate' |  | ||||||
| sleep-inactive-ac-timeout=3600 |  | ||||||
| sleep-inactive-battery-type='suspend' |  | ||||||
|  |  | ||||||
| [org/gnome/shell] |  | ||||||
| app-picker-layout=[{'org.gnome.Settings.desktop': <{'position': <0>}>, 'com.github.tchx84.Flatseal.desktop': <{'position': <1>}>, 'aee3ca9c-d66d-42f4-9b76-4dda08403814': <{'position': <2>}>, 'org.gnome.Software.desktop': <{'position': <3>}>, 'org.pipewire.Helvum.desktop': <{'position': <4>}>, 'com.spotify.Client.desktop': <{'position': <5>}>, 'org.gnome.Evince.desktop': <{'position': <6>}>, 'org.keepassxc.KeePassXC.desktop': <{'position': <7>}>, 'us.zoom.Zoom.desktop': <{'position': <8>}>, 'org.onlyoffice.desktopeditors.desktop': <{'position': <9>}>, '496a9ca3-5d6b-4231-9434-cf1da320fe55': <{'position': <10>}>, 'io.podman_desktop.PodmanDesktop.desktop': <{'position': <11>}>, 'io.element.Element.desktop': <{'position': <12>}>, '9a796cbb-fc11-4e0c-92ea-bbf29cc78df0': <{'position': <13>}>, 'org.mozilla.Thunderbird.desktop': <{'position': <14>}>, 'com.discordapp.Discord.desktop': <{'position': <15>}>, 'org.gnome.Loupe.desktop': <{'position': <16>}>, 'owncloud.desktop': <{'position': <17>}>, 'Alacritty.desktop': <{'position': <18>}>, 'dev.zed.Zed.desktop': <{'position': <19>}>, 'zen-browser.desktop': <{'position': <20>}>}, {'1aa8a471-a3d4-448f-979d-708f041bd93e': <{'position': <0>}>, 'sqlitebrowser.desktop': <{'position': <1>}>, 'Utilities': <{'position': <2>}>, 'io.github.celluloid_player.Celluloid.desktop': <{'position': <3>}>, 'io.missioncenter.MissionCenter.desktop': <{'position': <4>}>, 'com.logseq.Logseq.desktop': <{'position': <5>}>, '599d49f8-20cb-482c-a619-451cf4f561a3': <{'position': <6>}>, 'org.inkscape.Inkscape.desktop': <{'position': <7>}>, '90c1ffb4-572f-4a17-8793-a248f0ee26e4': <{'position': <8>}>, '5ea1c1fc-c589-42d3-bbaa-05428cb9e434': <{'position': <9>}>, 'nvtop.desktop': <{'position': <10>}>, 'com.github.taiko2k.avvie.desktop': <{'position': <11>}>, 'ds9.desktop': <{'position': <12>}>, 'it.mijorus.gearlever.desktop': <{'position': <13>}>, 'org.gnome.Calculator.desktop': <{'position': <14>}>, 'fish.desktop': <{'position': <15>}>, 'scrcpy.desktop': <{'position': <16>}>, 'scrcpy-console.desktop': <{'position': <17>}>, 'org.gnome.Showtime.desktop': <{'position': <18>}>, 'gparted.desktop': <{'position': <19>}>}] |  | ||||||
| command-history=['r', 'restart', 'btop', 'terminal', 'console'] |  | ||||||
| disable-user-extensions=false |  | ||||||
| disabled-extensions=['workspace-indicator@gnome-shell-extensions.gcampax.github.com', 'user-theme@gnome-shell-extensions.gcampax.github.com', 'bluetooth-quick-connect@bjarosze.gmail.com', 'launch-new-instance@gnome-shell-extensions.gcampax.github.com', 'just-perfection-desktop@just-perfection', 'syncthing@gnome.2nv2u.com', 'dash2dock-lite@icedman.github.com', 'awesome-tiles@velitasali.com', 'trayIconsReloaded@selfmade.pl'] |  | ||||||
| enabled-extensions=['gestureImprovements@gestures', 'pano@elhan.io', 'clipboard-history@alexsaveau.dev', 'WallpaperSwitcher@Rishu', 'gsconnect@andyholmes.github.io', 'tiling-assistant@leleat-on-github', 'azwallpaper@azwallpaper.gitlab.com', 'caffeine@patapon.info', 'Vitals@CoreCoding.com', 'windowgestures@extension.amarullz.com', 'dash-to-dock@micxgx.gmail.com', 'tilingshell@ferrarodomenico.com', 'search-light@icedman.github.com', 'vscode-search-provider@mrmarble.github.com', 'appindicatorsupport@rgcjonas.gmail.com'] |  | ||||||
| favorite-apps=['org.gnome.Nautilus.desktop', 'org.gnome.Console.desktop', 'obsidian.desktop', 'code.desktop', 'firefox.desktop'] |  | ||||||
| had-bluetooth-devices-setup=true |  | ||||||
| last-selected-power-profile='power-saver' |  | ||||||
| remember-mount-password=false |  | ||||||
| welcome-dialog-last-shown-version='42.4' |  | ||||||
|  |  | ||||||
| [org/gnome/shell/extensions/azwallpaper] |  | ||||||
| slideshow-current-wallpapper='arch_btw_Gilded Glow.png' |  | ||||||
| slideshow-directory='/mnt/media/@Bulk/Wallpaper/Linux' |  | ||||||
| slideshow-slide-duration=(6, 0, 0) |  | ||||||
| slideshow-time-of-slide-start=uint64 1724945866662 |  | ||||||
| slideshow-timer-remaining=17485 |  | ||||||
| slideshow-wallpaper-queue=['arch_btw_Morning Dew.png', 'arch_btw_Red Wrath.png', 'arch_btw_Aquatic Shock.png', 'arch_btw_Industrial Blue.png', 'arch_btw_Cutting Edge.png', 'arch_btw_chad-z-lCPfh95L0nc-unsplash.jpg', 'arch_btw_Purple Nerves.png', 'arch_btw_Hypnotic Shock.png', 'arch_btw_New Waves.png', 'arch_btw_Chevron Sunset.png', 'arch_btw_Aurora Hills.png', 'arch_btw_Vileness.png', 'arch_btw_Red Undead.png', 'arch_btw_Sky Fire.png', 'arch_btw_ash-goldsbrough-YfgE8WCcZsQ-unsplash.jpg', 'arch_btw_stars-3840x2160-star-trail-galaxy-sky-4k-6k-18295.jpg', 'arch_btw_blue-green-and-red-abstract-illustration-1566909.jpg', 'arch_btw_patrick-fore-UxPYxMIDcKU-unsplash.jpg', 'arch_btw_Police Chase.png', 'arch_btw_polygon-3840x2160-4k-16202.jpg', 'arch_btw_Pitch.png', 'arch_btw_Acid Arrows.png', 'arch_btw_t-h-chia-1-Zr2ye5588-unsplash.jpg', 'arch_btw_Multiplex.png', 'arch_btw_silhouette-of-mountains-during-dawn-1809644.jpg', 'arch_btw_Hail Storm.png', "arch_btw_Uppin' Flames.png", 'arch_btw_Frostbite.png', 'arch_btw_Android P.png', "arch_btw_Ol' Reliable.png", 'arch_btw_Hex Glow.png', 'arch_btw_star-trail-photography-2868665.jpg', 'arch_btw_Industrial Blood.png', 'arch_btw_mountains_moon_canvas_172262_3840x2160.jpg', 'arch_btw_alex-perez-ioJBsYQ-pPM-unsplash.jpg', 'arch_btw_Neural Network.png', 'arch_btw_Cut Stone.png', 'arch_btw_Armageddon.png'] |  | ||||||
|  |  | ||||||
| [org/gnome/shell/extensions/caffeine] |  | ||||||
| countdown-timer=0 |  | ||||||
| indicator-position-max=1 |  | ||||||
|  |  | ||||||
| [org/gnome/shell/extensions/clipboard-history] |  | ||||||
| display-mode=0 |  | ||||||
| private-mode=false |  | ||||||
| window-width-percentage=20 |  | ||||||
|  |  | ||||||
| [org/gnome/shell/extensions/gestureImprovements] |  | ||||||
| enable-alttab-gesture=false |  | ||||||
| enable-forward-back-gesture=true |  | ||||||
| forward-back-application-keyboard-shortcuts={'firefox.desktop': (1, false), 'org.chromium.Chromium.desktop': (1, false), 'org.gnome.gThumb.desktop': (2, false), 'org.gnome.eog.desktop': (3, false), 'org.gnome.Photos.desktop': (3, false), 'shotwell.desktop': (3, false), 'com.spotify.Client.desktop': (4, false), 'code.desktop': (5, false), 'code-insiders.desktop': (5, false), 'org.gnome.Terminal.desktop': (5, false), 'com.gexperts.Tilix.desktop': (5, false), 'org.gnome.TextEditor.desktop': (5, false), 'com.brave.Browser.desktop': (1, false)} |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| [org/gnome/shell/overrides] |  | ||||||
| edge-tiling=false |  | ||||||
|  |  | ||||||
| [org/gnome/shell/weather] |  | ||||||
| automatic-location=true |  | ||||||
| locations=[<(uint32 2, <('Zürich', 'LSZH', true, [(0.82874050067087668, 0.14893475701908529)], [(0.82670429484574492, 0.14922565104551519)])>)>] |  | ||||||
|  |  | ||||||
| [org/gnome/shell/world-clocks] |  | ||||||
| locations=@av [] |  | ||||||
|  |  | ||||||
| [org/gnome/software] |  | ||||||
| check-timestamp=int64 1724142293 |  | ||||||
| download-updates=false |  | ||||||
| download-updates-notify=false |  | ||||||
| first-run=false |  | ||||||
| flatpak-purge-timestamp=int64 1724771609 |  | ||||||
| online-updates-timestamp=int64 1682110589 |  | ||||||
| update-notification-timestamp=int64 1724699283 |  | ||||||
|  |  | ||||||
| [org/gnome/terminal/legacy] |  | ||||||
| theme-variant='dark' |  | ||||||
|  |  | ||||||
| [org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9] |  | ||||||
| background-color='rgb(0,0,0)' |  | ||||||
| default-size-rows=24 |  | ||||||
| font='Fira Code 12' |  | ||||||
| foreground-color='rgb(170,170,170)' |  | ||||||
| use-system-font=false |  | ||||||
| use-theme-colors=false |  | ||||||
|  |  | ||||||
| [org/gnome/tweaks] |  | ||||||
| show-extensions-notice=false |  | ||||||
|  |  | ||||||
| [org/gtk/gtk4/settings/color-chooser] |  | ||||||
| custom-colors=[(0.20333333313465118, 0.20333333313465118, 0.20333333313465118, 0.80236488580703735), (0.20333333313465118, 0.20333333313465118, 0.20333333313465118, 1.0), (0.20333333313465118, 0.20333333313465118, 0.20333333313465118, 0.80666667222976685), (0.0, 0.0, 0.0, 0.56333333253860474), (0.0, 0.0, 0.0, 0.25)] |  | ||||||
| selected-color=(true, 0.20333333313465118, 0.20333333313465118, 0.20333333313465118, 0.80236488580703735) |  | ||||||
|  |  | ||||||
| [org/gtk/gtk4/settings/emoji-chooser] |  | ||||||
| recent-emotrue |  | ||||||
| sort-order='ascending' |  | ||||||
| type-format='category' |  | ||||||
| view-type='grid' |  | ||||||
| window-size=(887, 1027) |  | ||||||
|  |  | ||||||
| [org/gtk/settings/color-chooser] |  | ||||||
| custom-colors=[(0.14509803921568629, 0.74509803921568629, 0.54509803921568623, 1.0), (0.0, 0.85882352941176465, 0.37647058823529411, 1.0), (1.0, 0.92156862745098034, 0.062745098039215685, 1.0), (1.0, 0.52156862745098043, 0.10588235294117647, 1.0), (1.0, 0.25490196078431371, 0.21176470588235294, 1.0), (0.49803921568627452, 0.13725490196078433, 1.0, 1.0), (0.098039215686274508, 0.45098039215686275, 1.0, 1.0)] |  | ||||||
| selected-color=(true, 0.6470588235294118, 0.11372549019607843, 0.17647058823529413, 1.0) |  | ||||||
|  |  | ||||||
| [org/gtk/settings/file-chooser] |  | ||||||
| date-format='regular' |  | ||||||
| location-mode='path-bar' |  | ||||||
| show-hidden=true |  | ||||||
| show-size-column=true |  | ||||||
| show-type-column=true |  | ||||||
| sidebar-width=275 |  | ||||||
| sort-column='name' |  | ||||||
| sort-directories-first=true |  | ||||||
| sort-order='ascending' |  | ||||||
| type-format='category' |  | ||||||
| window-position=(26, 120) |  | ||||||
| window-size=(1573, 856) |  | ||||||
|  |  | ||||||
| [org/mate/atril/default] |  | ||||||
| window-ratio=(3.2268907563025211, 1.2422802850356294) |  | ||||||
| . |  | ||||||
| [system/proxy] |  | ||||||
| mode='none' |  | ||||||
| ji=[(([uint32 9888], 'warning', ['warning'], uint32 8), uint32 0)] |  | ||||||
|  |  | ||||||
| [org/gtk/gtk4/settings/file-chooser] |  | ||||||
| date-format='regular' |  | ||||||
| location-mode='path-bar' |  | ||||||
| show-hidden=true |  | ||||||
| show-size-column=true |  | ||||||
| show-type-column=true |  | ||||||
| sidebar-width=170 |  | ||||||
| sort-column='name' |  | ||||||
| sort-directories-first=true |  | ||||||
| sort-order='ascending' |  | ||||||
| type-format='category' |  | ||||||
| view-type='grid' |  | ||||||
| window-size=(887, 1027) |  | ||||||
|  |  | ||||||
| [org/gtk/settings/color-chooser] |  | ||||||
| custom-colors=[(0.14509803921568629, 0.74509803921568629, 0.54509803921568623, 1.0), (0.0, 0.85882352941176465, 0.37647058823529411, 1.0), (1.0, 0.92156862745098034, 0.062745098039215685, 1.0), (1.0, 0.52156862745098043, 0.10588235294117647, 1.0), (1.0, 0.25490196078431371, 0.21176470588235294, 1.0), (0.49803921568627452, 0.13725490196078433, 1.0, 1.0), (0.098039215686274508, 0.45098039215686275, 1.0, 1.0)] |  | ||||||
| selected-color=(true, 0.6470588235294118, 0.11372549019607843, 0.17647058823529413, 1.0) |  | ||||||
|  |  | ||||||
| [org/gtk/settings/file-chooser] |  | ||||||
| date-format='regular' |  | ||||||
| location-mode='path-bar' |  | ||||||
| show-hidden=true |  | ||||||
| show-size-column=true |  | ||||||
| show-type-column=true |  | ||||||
| sidebar-width=275 |  | ||||||
| sort-column='name' |  | ||||||
| sort-directories-first=true |  | ||||||
| sort-order='ascending' |  | ||||||
| type-format='category' |  | ||||||
| window-position=(26, 120) |  | ||||||
| window-size=(1573, 856) |  | ||||||
|  |  | ||||||
| [org/mate/atril/default] |  | ||||||
| window-ratio=(3.2268907563025211, 1.2422802850356294) |  | ||||||
| . |  | ||||||
| [system/proxy] |  | ||||||
| mode='none' |  | ||||||
							
								
								
									
										928
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										928
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										26
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								flake.nix
									
									
									
									
									
								
							| @@ -11,39 +11,31 @@ | |||||||
|     nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.4.1"; |     nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.4.1"; | ||||||
|     # hyprland, plugins and related utils |     # hyprland, plugins and related utils | ||||||
|     hyprland.url = "github:hyprwm/Hyprland"; |     hyprland.url = "github:hyprwm/Hyprland"; | ||||||
|     hyprgrass = { |     stylix.url = "github:danth/stylix/release-24.11"; | ||||||
|         url = "github:horriblename/hyprgrass"; |     # quicksettings widget | ||||||
|         inputs.hyprland.follows = "hyprland"; # IMPORTANT |     better-control.url = "github:rishabh5321/better-control-flake"; | ||||||
|     }; |  | ||||||
|     hyprland-virtual-desktops.url = "github:levnikmyskin/hyprland-virtual-desktops"; |  | ||||||
|     walker.url = "github:abenz1267/walker"; |  | ||||||
|     hyprpanel.url = "github:Jas-SinghFSU/HyprPanel"; |  | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|   outputs = { |   outputs = { | ||||||
|     self, |     self, | ||||||
|     nixpkgs, |     nixpkgs, | ||||||
|     home-manager, |     home-manager, | ||||||
|     hyprgrass, |     stylix, | ||||||
|     hyprland-virtual-desktops, |  | ||||||
|     hyprpanel, |  | ||||||
|     ... |     ... | ||||||
|   } @ inputs:  |   } @ inputs: | ||||||
|     let |     let | ||||||
|       overlays = [ |  | ||||||
|         inputs.hyprpanel.overlay |  | ||||||
|       ]; |  | ||||||
|     in |     in | ||||||
|   { |   { | ||||||
|  |  | ||||||
|     ## NixOS configurations are the main output of this flake |     ## NixOS configurations are the main output of this flake | ||||||
|     # HP Spectre x360 2018 |     # HP Spectre x360 2018 | ||||||
|     nixosConfigurations.spectre = nixpkgs.lib.nixosSystem { |     nixosConfigurations.Nixtre = nixpkgs.lib.nixosSystem { | ||||||
|       system = "x86_64-linux"; |       system = "x86_64-linux"; | ||||||
|       specialArgs = { inherit inputs; }; |       specialArgs = { inherit inputs; }; | ||||||
|  |  | ||||||
|       modules = [ |       modules = [ | ||||||
|         ./hosts/spectre-x360-2018 |         ./hosts/spectre-x360-2018 | ||||||
|  |         stylix.nixosModules.stylix | ||||||
|         home-manager.nixosModules.home-manager |         home-manager.nixosModules.home-manager | ||||||
|           { |           { | ||||||
|             home-manager.useGlobalPkgs = true; |             home-manager.useGlobalPkgs = true; | ||||||
| @@ -53,11 +45,7 @@ | |||||||
|             home-manager.users.remy.imports = [ |             home-manager.users.remy.imports = [ | ||||||
|               ./users/remy.nix |               ./users/remy.nix | ||||||
|               inputs.nix-flatpak.homeManagerModules.nix-flatpak |               inputs.nix-flatpak.homeManagerModules.nix-flatpak | ||||||
|               inputs.walker.homeManagerModules.default |  | ||||||
|             ]; |             ]; | ||||||
|  |  | ||||||
|             nixpkgs.overlays = [ inputs.hyprpanel.overlay ]; |  | ||||||
|             # _module.args = { inherit inputs; }; |  | ||||||
|           } |           } | ||||||
|       ]; |       ]; | ||||||
|     }; |     }; | ||||||
|   | |||||||
| @@ -4,12 +4,19 @@ | |||||||
|     imports = [ |     imports = [ | ||||||
|         ./configuration.nix |         ./configuration.nix | ||||||
|         ./hardware-configuration.nix |         ./hardware-configuration.nix | ||||||
|  |         ../../modules/nixos/bluetooth.nix | ||||||
|  |         ../../modules/nixos/flakes.nix | ||||||
|  |         ../../modules/nixos/flatpak.nix | ||||||
|  |         ../../modules/nixos/fonts.nix | ||||||
|         ../../modules/nixos/hyprland.nix |         ../../modules/nixos/hyprland.nix | ||||||
|         ../../modules/nixos/monitoring.nix |         ../../modules/nixos/monitoring.nix | ||||||
|         ../../modules/nixos/networking.nix |         ../../modules/nixos/networking.nix | ||||||
|  |         ../../modules/nixos/nh.nix | ||||||
|         ../../modules/nixos/nvidia.nix |         ../../modules/nixos/nvidia.nix | ||||||
|         ../../modules/nixos/pipewire.nix |         ../../modules/nixos/pipewire.nix | ||||||
|         ../../modules/nixos/podman.nix |         ../../modules/nixos/podman.nix | ||||||
|  |         ../../modules/nixos/power.nix | ||||||
|  |         ../../modules/nixos/stylix.nix | ||||||
|         ../../utils/binary-cache.nix |         ../../utils/binary-cache.nix | ||||||
|         ../../utils/garbage-collection.nix |         ../../utils/garbage-collection.nix | ||||||
|     ]; |     ]; | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| {pkgs, ...}:  | {pkgs, ...}: | ||||||
| { | { | ||||||
|   # Add a udev rule that launches a backup using restic when a specific USB device (the backup drive) is plugged in |   # Add a udev rule that launches a backup using restic when a specific USB device (the backup drive) is plugged in | ||||||
|  |  | ||||||
| @@ -22,4 +22,4 @@ | |||||||
|       ExecStart = "${pkgs.restic}/bin/restic backup /home/username"; |       ExecStart = "${pkgs.restic}/bin/restic backup /home/username"; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,8 +1,10 @@ | |||||||
| {pkgs, ...}:  | {pkgs, ...}: | ||||||
| { | { | ||||||
|   programs.vscode = { |   programs.vscode = { | ||||||
|     enable = true; |     enable = true; | ||||||
|  |  | ||||||
|  |     # profiles = { | ||||||
|  |     #   default = { | ||||||
|     extensions = with pkgs.vscode-extensions; [ |     extensions = with pkgs.vscode-extensions; [ | ||||||
|       # QOL |       # QOL | ||||||
|       mhutchie.git-graph |       mhutchie.git-graph | ||||||
| @@ -14,9 +16,117 @@ | |||||||
|       ms-python.isort |       ms-python.isort | ||||||
|       ms-python.debugpy |       ms-python.debugpy | ||||||
|       ms-python.vscode-pylance |       ms-python.vscode-pylance | ||||||
|  |       ms-toolsai.jupyter | ||||||
|  |       ms-toolsai.vscode-jupyter-slideshow | ||||||
|  |       ms-toolsai.jupyter-renderers | ||||||
|  |  | ||||||
|       # Nix language |       # Nix language | ||||||
|       jnoortheen.nix-ide |       jnoortheen.nix-ide | ||||||
|  |  | ||||||
|  |       # typst | ||||||
|  |       myriad-dreamin.tinymist | ||||||
|     ]; |     ]; | ||||||
|  |       # }; | ||||||
|  |  | ||||||
|  |     keybindings = [ | ||||||
|  |       { | ||||||
|  |         key = "ctrl+#"; | ||||||
|  |         command = "editor.action.commentLine"; | ||||||
|  |         when = "editorTextFocus"; | ||||||
|  |       } | ||||||
|  |     ]; | ||||||
|  |  | ||||||
|  |     userSettings = { | ||||||
|  |       # visual | ||||||
|  |       "window.menuBarVisibility" = "toggle"; | ||||||
|  |  | ||||||
|  |       "editor.fontFamily" = "'FiraCode Nerd Font Mono', 'monospace', monospace"; | ||||||
|  |       "terminal.integrated.fontFamily" = "FiraCode Nerd Font Mono"; | ||||||
|  |       "workbench.iconTheme" = "vs-seti"; | ||||||
|  |  | ||||||
|  |       # telemetry | ||||||
|  |       "telemetry.enableCrashReporter" = false; | ||||||
|  |       "telemetry.enableTelemetry" = false; | ||||||
|  |       "redhat.telemetry.enabled" = false; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |       # editor QOL | ||||||
|  |       "security.workspace.trust.untrustedFiles" = "open"; | ||||||
|  |       "editor.wordWrap" = "on"; | ||||||
|  |       "editor.suggestSelection" = "first"; | ||||||
|  |       "editor.renderWhitespace" = "none"; | ||||||
|  |       "editor.acceptSuggestionOnEnter" = "off"; | ||||||
|  |       "editor.fontLigatures" = true; | ||||||
|  |       "editor.inlineSuggest.enabled" = true; | ||||||
|  |       "editor.bracketPairColorization.enabled" = true; | ||||||
|  |       "editor.unicodeHighlight.nonBasicASCII" = false; | ||||||
|  |       "editor.unicodeHighlight.invisibleCharacters" = false; | ||||||
|  |       "editor.unicodeHighlight.ambiguousCharacters" = false; | ||||||
|  |  | ||||||
|  |       "files.autoSave" = "onWindowChange"; | ||||||
|  |       "files.autoSaveDelay" = 1000; | ||||||
|  |       "files.insertFinalNewline" = true; | ||||||
|  |       "files.trimTrailingWhitespace" = true; | ||||||
|  |  | ||||||
|  |       "explorer.confirmDelete" = false; | ||||||
|  |       "explorer.confirmDragAndDrop" = false; | ||||||
|  |       "terminal.integrated.enableMultiLinePasteWarning" = false; | ||||||
|  |       "update.showReleaseNotes" = false; | ||||||
|  |       "terminal.external.linuxExec" = "kitty"; | ||||||
|  |       "workbench.startupEditor" = "newUntitledFile"; | ||||||
|  |       # "workbench.colorTheme" = "Default Light+"; | ||||||
|  |  | ||||||
|  |       # Extension management | ||||||
|  |       "extensions.autoCheckUpdates" = false; | ||||||
|  |       "extensions.autoUpdate" = false; | ||||||
|  |       "extensions.ignoreRecommendations" = true; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |       # git | ||||||
|  |       "git.ignoreMissingGitWarning" = true; | ||||||
|  |       "git.confirmSync" = false; | ||||||
|  |       "git.enableSmartCommit" = true; | ||||||
|  |       "git.autofetch" = true; | ||||||
|  |       "diffEditor.renderSideBySide" = false; | ||||||
|  |       "diffEditor.hideUnchangedRegions.enabled" = true; | ||||||
|  |       "diffEditor.ignoreTrimWhitespace" = false; | ||||||
|  |  | ||||||
|  |       # Copilot | ||||||
|  |       "github.copilot.editor.enableAutoCompletions" = true; | ||||||
|  |       "github.copilot.advanced" = {}; | ||||||
|  |       "github.copilot.enable" = { | ||||||
|  |           "*" = true; | ||||||
|  |       }; | ||||||
|  |  | ||||||
|  |       # Python | ||||||
|  |       "python.terminal.activateEnvironment" = false; # let nix-shell handle this | ||||||
|  |       "jupyter.disableJupyterAutoStart" = true; | ||||||
|  |       "jupyter.askForKernelRestart" = false; | ||||||
|  |       "workbench.editorAssociations" = { | ||||||
|  |           "*.ipynb" = "jupyter-notebook"; | ||||||
|  |       }; | ||||||
|  |       "notebook.cellToolbarLocation" = { | ||||||
|  |           "default" = "right"; | ||||||
|  |           "jupyter-notebook" = "left"; | ||||||
|  |       }; | ||||||
|  |       "jupyter.widgetScriptSources" = [ | ||||||
|  |           "jsdelivr.com" | ||||||
|  |           "unpkg.com" | ||||||
|  |       ]; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |       # Typst | ||||||
|  |       "[typst]" = { | ||||||
|  |           "editor.wordSeparators" = "`~!@#$%^&*()=+[{]}\\|;:'\",.<>/?"; | ||||||
|  |       }; | ||||||
|  |       "[typst-code]" = { | ||||||
|  |       "git.openRepositoryInParentFolders" = "never"; | ||||||
|  |           "editor.wordSeparators" = "`~!@#$%^&*()=+[{]}\\|;:'\",.<>/?"; | ||||||
|  |       }; | ||||||
|  |       "tinymist.fontPaths" = [ | ||||||
|  |           "./font" | ||||||
|  |       ]; | ||||||
|  |     }; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								modules/home-manager/dev.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								modules/home-manager/dev.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | {pkgs, ...}: | ||||||
|  | { | ||||||
|  |     programs.direnv = { | ||||||
|  |         enable = true; | ||||||
|  |         # enableFishIntegration = true; # see note on other shells below | ||||||
|  |         nix-direnv.enable = true; | ||||||
|  |     }; | ||||||
|  | } | ||||||
							
								
								
									
										7
									
								
								modules/home-manager/documents.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								modules/home-manager/documents.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | {pkgs, ...}: | ||||||
|  | { | ||||||
|  |   home.packages = [ | ||||||
|  |     # pdf viewer | ||||||
|  |     pkgs.evince | ||||||
|  |   ]; | ||||||
|  | } | ||||||
| @@ -1,9 +1,17 @@ | |||||||
| {pkgs, ...}:  | {pkgs, ...}: | ||||||
| { | { | ||||||
|  |   # Required by the fzf fish plugin | ||||||
|   programs.fzf = { |   programs.fzf = { | ||||||
|     enable = true; |     enable = true; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|  |   home.packages = with pkgs; [ | ||||||
|  |     fd | ||||||
|  |     bat | ||||||
|  |   ]; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|   programs.fish = { |   programs.fish = { | ||||||
|     enable = true; |     enable = true; | ||||||
| @@ -22,9 +30,6 @@ | |||||||
|     ]; |     ]; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|   home.packages = [ |  | ||||||
|     pkgs.fishPlugins.tide |  | ||||||
|   ]; |  | ||||||
|  |  | ||||||
|   # sets the "default" shell to fish |   # sets the "default" shell to fish | ||||||
|   # actually keeps bash as a posix-compliant default but starts fish if the shell is not bash |   # actually keeps bash as a posix-compliant default but starts fish if the shell is not bash | ||||||
|   | |||||||
| @@ -1,24 +1,19 @@ | |||||||
| { lib, pkgs, ... }: { | { | ||||||
|  |   lib, pkgs, ... | ||||||
|  | }: | ||||||
|  | { | ||||||
|  |   # requires that flatpaks be enabled in the system configuration as well | ||||||
|  |   services.flatpak.enable = true; | ||||||
|  |   services.flatpak.update.auto.enable = false; | ||||||
|  |   services.flatpak.uninstallUnmanaged = false; | ||||||
|  |  | ||||||
|   # services.flatpak.enable = true; |   services.flatpak.packages = [ | ||||||
|   # xdg.portal.enable = true; |     "com.github.flxzt.rnote" | ||||||
|   # # install the xdg-desktop-portal-gtk package |     "com.github.tchx84.Flatseal" | ||||||
|   # # to enable the portal service |     "com.spotify.Client" | ||||||
|   # xdg.portal.extraPortals = with pkgs; [ |     "io.podman_desktop.PodmanDesktop" | ||||||
|   #   xdg-desktop-portal-gtk |     "org.pipewire.Helvum" | ||||||
|   # ]; |     "io.github.zen_browser.zen" | ||||||
|   # services.flatpak.update.auto.enable = false; |     "im.riot.Riot" | ||||||
|   # services.flatpak.uninstallUnmanaged = false; |   ]; | ||||||
|    | } | ||||||
|   # services.flatpak.packages = [ |  | ||||||
|   #   "com.calibre_ebook.calibre" |  | ||||||
|   #   "com.github.flxzt.rnote" |  | ||||||
|   #   "com.github.tchx84.Flatseal" |  | ||||||
|   #   "com.spotify.Client" |  | ||||||
|   #   "io.podman_desktop.PodmanDesktop" |  | ||||||
|   #   "org.pipewire.Helvum" |  | ||||||
|   #   "io.github.zen_browser.zen" |  | ||||||
|   #   "im.riot.Riot" |  | ||||||
|   # ]; |  | ||||||
|  |  | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,87 +0,0 @@ | |||||||
| {pkgs, lib,  ...}: |  | ||||||
| with lib.hm.gvariant; |  | ||||||
| { |  | ||||||
|     ## Gnome extensions |  | ||||||
|     programs.gnome-shell = { |  | ||||||
|         enable = true; |  | ||||||
|         extensions = [ |  | ||||||
|             { |  | ||||||
|                 package = pkgs.gnomeExtensions.dash-to-dock; |  | ||||||
|             } |  | ||||||
|             { |  | ||||||
|                 id = "tilingshell@ferrarodomenico.com"; |  | ||||||
|                 package = pkgs.gnome-shell-extensions; |  | ||||||
|             } |  | ||||||
|             { |  | ||||||
|                 id = "search-light@icedman.github.com"; |  | ||||||
|                 package = pkgs.gnome-shell-extensions; |  | ||||||
|             } |  | ||||||
|             { |  | ||||||
|                 package = pkgs.gnomeExtensions.window-gestures; |  | ||||||
|             } |  | ||||||
|             { |  | ||||||
|                 package = pkgs.gnomeExtensions.random-wallpaper; |  | ||||||
|             } |  | ||||||
|         ]; |  | ||||||
|     }; |  | ||||||
|  |  | ||||||
|  |  | ||||||
|     ## And their settings (stored in dconf) |  | ||||||
|     dconf.settings."org/gnome/shell/extensions/tilingshell" = { |  | ||||||
|         inner-gaps = mkUint32 8; |  | ||||||
|         layouts-json = '' |  | ||||||
|             [{"id":"Layout 2","tiles":[{"x":0,"y":0,"width":0.22,"height":1,"groups":[1]},{"x":0.22,"y":0,"width":0.56,"height":1,"groups":[1,2]},{"x":0.78,"y":0,"width":0.22,"height":1,"groups":[2]}]},{"id":"Layout 3","tiles":[{"x":0,"y":0,"width":0.33,"height":1,"groups":[1]},{"x":0.33,"y":0,"width":0.67,"height":1,"groups":[1]}]},{"id":"Layout 4","tiles":[{"x":0,"y":0,"width":0.67,"height":1,"groups":[1]},{"x":0.67,"y":0,"width":0.33,"height":1,"groups":[1]}]},{"id":"2732837","tiles":[{"x":0,"y":0,"width":0.5002604166666667,"height":1,"groups":[1]},{"x":0.5002604166666667,"y":0,"width":0.49973958333333335,"height":1,"groups":[1]}]},{"id":"241562","tiles":[{"x":0,"y":0,"width":0.3328488372093023,"height":1,"groups":[1]},{"x":0.3328488372093023,"y":0,"width":0.33430232558139533,"height":1,"groups":[2,1]},{"x":0.6671511627906976,"y":0,"width":0.3328488372093023,"height":1,"groups":[2]}]}] |  | ||||||
|         ''; |  | ||||||
|         outer-gaps = mkUint32 0; |  | ||||||
|         overridden-settings = '' |  | ||||||
|             {"org.gnome.mutter.keybindings":{"toggle-tiled-right":"['<Super>Right']","toggle-tiled-left":"['<Super>Left']"},"org.gnome.desktop.wm.keybindings":{"maximize":"['<Super>Up']","unmaximize":"['<Super>Down', '<Alt>F5']"},"org.gnome.mutter":{"edge-tiling":"true"}} |  | ||||||
|         ''; |  | ||||||
|         selected-layouts = [ "Layout 4" ]; |  | ||||||
|     }; |  | ||||||
|  |  | ||||||
|  |  | ||||||
|     dconf.settings."org/gnome/shell/extensions/search-light" = { |  | ||||||
|         background-color = mkTuple [ 0.20333333313465118 0.20333333313465118 0.20333333313465118 0.80236488580703735 ]; |  | ||||||
|         blur-background = false; |  | ||||||
|         entry-font-size = 1; |  | ||||||
|         monitor-count = 1; |  | ||||||
|         scale-height = 0.10000000000000001; |  | ||||||
|         scale-width = 0.20000000000000001; |  | ||||||
|         shortcut-search = [ "<Control><Alt>space" ]; |  | ||||||
|         popup-at-cursor-monitor = true; |  | ||||||
|         show-panel-icon = false; |  | ||||||
|     }; |  | ||||||
|  |  | ||||||
|     dconf.settings."org/gnome/shell/extensions/windowgestures" = { |  | ||||||
|         pinch-enable = false; |  | ||||||
|         swipe4-left = 9; |  | ||||||
|         swipe4-right = 8; |  | ||||||
|         swipe4-updown = 0; |  | ||||||
|         three-finger = true; |  | ||||||
|     }; |  | ||||||
|  |  | ||||||
|     dconf.settings."org/gnome/shell/extensions/dash-to-dock" = { |  | ||||||
|         background-opacity = 0.80000000000000004; |  | ||||||
|         custom-theme-shrink = true; |  | ||||||
|         dash-max-icon-size = 40; |  | ||||||
|         dock-position = "BOTTOM"; |  | ||||||
|         height-fraction = 0.90000000000000002; |  | ||||||
|         preview-size-scale = 0.29999999999999999; |  | ||||||
|         show-running = true; |  | ||||||
|         show-trash = false; |  | ||||||
|         show-windows-preview = true; |  | ||||||
|     }; |  | ||||||
|  |  | ||||||
|     dconf.settings."org/gnome/mutter" = { |  | ||||||
|         dynamic-workspaces = true; |  | ||||||
|         edge-tiling = false; |  | ||||||
|         workspaces-only-on-primary = true; |  | ||||||
|     }; |  | ||||||
|  |  | ||||||
|  |  | ||||||
|     dconf.settings."org/gnome/desktop/interface" = { |  | ||||||
|         color-scheme = "prefer-dark"; |  | ||||||
|         show-battery-percentage = true; |  | ||||||
|     }; |  | ||||||
|  |  | ||||||
| } |  | ||||||
							
								
								
									
										11
									
								
								modules/home-manager/hypr/better-control.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								modules/home-manager/hypr/better-control.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | { | ||||||
|  |   inputs, | ||||||
|  |   pkgs, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | { | ||||||
|  |   environment.systemPackages = | ||||||
|  |     with pkgs; [ | ||||||
|  |         inputs.better-control.packages.${pkgs.system}.better-control | ||||||
|  |   ]; | ||||||
|  | } | ||||||
							
								
								
									
										7
									
								
								modules/home-manager/hypr/cursor.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								modules/home-manager/hypr/cursor.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | {inputs, pkgs, ...}: | ||||||
|  | { | ||||||
|  |     # Put a cursor theme to the location expected by the hyprland window manager | ||||||
|  |     # TODO | ||||||
|  |  | ||||||
|  |  | ||||||
|  | } | ||||||
							
								
								
									
										11
									
								
								modules/home-manager/hypr/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								modules/home-manager/hypr/default.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | { | ||||||
|  |   imports = [ | ||||||
|  |     # ./better-control.nix | ||||||
|  |     ./cursor.nix | ||||||
|  |     ./hyprland-customization.nix | ||||||
|  |     ./hyprpaper.nix | ||||||
|  |     ./hyprlock.nix | ||||||
|  |     ./hypridle.nix | ||||||
|  |     ./waybar.nix | ||||||
|  |   ]; | ||||||
|  | } | ||||||
							
								
								
									
										37
									
								
								modules/home-manager/hypr/hypridle.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								modules/home-manager/hypr/hypridle.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,37 @@ | |||||||
|  | {inputs, pkgs, ...}: | ||||||
|  | { | ||||||
|  |   services.hypridle = { | ||||||
|  |     enable = true; | ||||||
|  |     settings = { | ||||||
|  |       general = { | ||||||
|  |         lock_cmd = "pidof hyprlock || hyprlock";     # avoid starting multiple hyprlock instances. | ||||||
|  |         after_sleep_cmd = "hyprctl dispatch dpms on"; | ||||||
|  |         ignore_dbus_inhibit = false; | ||||||
|  |       }; | ||||||
|  |  | ||||||
|  |       listener = [ | ||||||
|  |         { | ||||||
|  |           # dim screen after 4 minutes | ||||||
|  |           timeout = 240; | ||||||
|  |           on-timeout = "brightnessctl -s set 10"; | ||||||
|  |           # set monitor backlight to minimum, avoid 0 on OLED monitor. | ||||||
|  |           on-resume = "brightnessctl -r"; | ||||||
|  |           # monitor backlight restore. | ||||||
|  |         } | ||||||
|  |         { | ||||||
|  |           # lock screen after 5 minutes | ||||||
|  |           timeout = 300; | ||||||
|  |           on-timeout = "loginctl lock-session && hyprctl dispatch dpms off"; | ||||||
|  |           on-resume = "hyprctl dispatch dpms on"; | ||||||
|  |         } | ||||||
|  |         { | ||||||
|  |           # suspend after 10 minutes | ||||||
|  |           timeout = 600; | ||||||
|  |           on-timeout = "systemctl suspend"; | ||||||
|  |           on-resume = "hyprctl dispatch dpms on"; | ||||||
|  |         } | ||||||
|  |       ]; | ||||||
|  |     }; | ||||||
|  |  | ||||||
|  |   }; | ||||||
|  | } | ||||||
							
								
								
									
										220
									
								
								modules/home-manager/hypr/hyprland-customization.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										220
									
								
								modules/home-manager/hypr/hyprland-customization.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,220 @@ | |||||||
|  | {inputs, pkgs, ...}: | ||||||
|  | { | ||||||
|  |  | ||||||
|  |   home.packages = [ | ||||||
|  |     pkgs.hyprshot | ||||||
|  |     pkgs.nautilus | ||||||
|  |     pkgs.gnome-control-center | ||||||
|  |     pkgs.brightnessctl | ||||||
|  |     pkgs.cliphist | ||||||
|  |     pkgs.wl-clipboard | ||||||
|  |     pkgs.gcr # Provides org.gnome.keyring.SystemPrompter | ||||||
|  |   ]; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   # Also use gnome keyring | ||||||
|  |   services.gnome-keyring.enable = true; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   wayland.windowManager.hyprland = { | ||||||
|  |     enable = true; | ||||||
|  |     systemd.enable = true; | ||||||
|  |     settings = { | ||||||
|  |       "$mod" = "SUPER"; | ||||||
|  |       "$browser" = "firefox"; | ||||||
|  |       "$launcher-cmd" = "wofi --show drun -n"; | ||||||
|  |       "$ide" = "code"; | ||||||
|  |  | ||||||
|  |       # Global bindings | ||||||
|  |       bind = [ | ||||||
|  |         # Launch applications | ||||||
|  |         "$mod, space, exec, $launcher-cmd" | ||||||
|  |         "$mod, return, exec, kitty" | ||||||
|  |         "$mod, b, exec, $browser" | ||||||
|  |         "$mod, s, exec, $ide" | ||||||
|  |         "$mod, e, exec, nautilus" | ||||||
|  |  | ||||||
|  |         # Lock screen | ||||||
|  |         "$mod, l, exec, hyprlock" | ||||||
|  |  | ||||||
|  |         # Clipboard management | ||||||
|  |         "$mod, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy" | ||||||
|  |  | ||||||
|  |         # Close window | ||||||
|  |         "$mod, Q, killactive," | ||||||
|  |         "$mod+Shift, Q, exit," # this is the true kill | ||||||
|  |  | ||||||
|  |         # Toggle Floating and reduce size | ||||||
|  |         "$mod, f, togglefloating," | ||||||
|  |         "$mod, f, resizeactive, 50% 50%," | ||||||
|  |         # Toggle fullscreen | ||||||
|  |         "$mod+Shift, f, fullscreen," | ||||||
|  |  | ||||||
|  |         # Alt-tab alternative | ||||||
|  |         "$mod, Tab, cyclenext," | ||||||
|  |         "$mod, Tab, bringactivetotop," | ||||||
|  |  | ||||||
|  |         # Move the window | ||||||
|  |         "$mod+Shift, left, movewindow, l" | ||||||
|  |         "$mod+Shift, right, movewindow, r" | ||||||
|  |         "$mod+Shift, up, movewindow, u" | ||||||
|  |         "$mod+Shift, down, movewindow, d" | ||||||
|  |  | ||||||
|  |         "$mod+Ctrl, left, movetoworkspace, -1" | ||||||
|  |         "$mod+Ctrl, right, movetoworkspace, +1" | ||||||
|  |  | ||||||
|  |         # # Switch workspace | ||||||
|  |         "$mod+Alt, left, workspace, -1" | ||||||
|  |         "$mod+Alt, right, workspace, +1" | ||||||
|  |  | ||||||
|  |         # Screenshot | ||||||
|  |         "$mod, Print, exec, hyprshot -m region -o ~/Pictures/Screenshots" | ||||||
|  |         "$mod+Shift, Print, exec, hyprshot -m window -o ~/Pictures/Screenshots" | ||||||
|  |  | ||||||
|  |       ]; | ||||||
|  |  | ||||||
|  |       # repeatable bindings | ||||||
|  |       binde = [ | ||||||
|  |         # Fn keys | ||||||
|  |         ", XF86MonBrightnessDown, exec, brightnessctl set -5%" | ||||||
|  |         ", XF86MonBrightnessUp, exec, brightnessctl set +5%" | ||||||
|  |         ", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+" | ||||||
|  |         ", XF86AudioLowerVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%-" | ||||||
|  |         ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" | ||||||
|  |  | ||||||
|  |         # Reshape the window in focus | ||||||
|  |         "$mod, MINUS, resizeactive, -2% -2%" | ||||||
|  |         "$mod, KP_Subtract, resizeactive, -2% -2%" | ||||||
|  |         "$mod, PLUS, resizeactive, 2% 2%" | ||||||
|  |         "$mod, KP_Add, resizeactive, 2% 2%" | ||||||
|  |  | ||||||
|  |       ]; | ||||||
|  |  | ||||||
|  |       # lock-screen bindings | ||||||
|  |       bindl = [ | ||||||
|  |         # on lid close, lock the screen | ||||||
|  |         # if another monitor is connected, only turn the internal monitor off and don't lock the screen | ||||||
|  |         ", switch:on:Lid Switch, exec, hyprctl dispatch dpms off eDP-1" | ||||||
|  |         # if there is no active monitor, perform a screen lock | ||||||
|  |         ", switch:on:Lid Switch, exec, hyprctl monitors | grep 'dpmsStatus: 1' || hyprlock" | ||||||
|  |         ", switch:off:Lid Switch, exec, hyprctl dispatch dpms on eDP-1" | ||||||
|  |       ]; | ||||||
|  |  | ||||||
|  |       # bindr = [ | ||||||
|  |       #     # Overview | ||||||
|  |       #   "$mod, , overview:toggle" | ||||||
|  |       # ]; | ||||||
|  |  | ||||||
|  |       bindm = [ | ||||||
|  |         # move the window | ||||||
|  |         "$mod, mouse:272, movewindow" | ||||||
|  |       ]; | ||||||
|  |  | ||||||
|  |       exec-once = [ | ||||||
|  |         "gnome-keyring-daemon --start --components=secrets" | ||||||
|  |         # "${pkgs.hyprpaper}/bin/hyprpaper" | ||||||
|  |         # hyprpaper is handled as its own service | ||||||
|  |         "${pkgs.waybar}/bin/waybar" | ||||||
|  |         # listen to clipboard events and send them to cliphist | ||||||
|  |         "wl-paste --watch cliphist store" | ||||||
|  |         "${pkgs.waybar}/bin/hypridle" | ||||||
|  |         "hyprpaper" | ||||||
|  |         # # Fixes cursor themes in gnome apps under hyprland | ||||||
|  |         # "gsettings set org.gnome.desktop.interface cursor-theme '${config.home.pointerCursor.name}'" | ||||||
|  |         # "gsettings set org.gnome.desktop.interface cursor-size ${toString home.pointerCursor.size}" | ||||||
|  |       ]; | ||||||
|  |  | ||||||
|  |       general = { | ||||||
|  |         resize_on_border = true; | ||||||
|  |         gaps_in = 5; | ||||||
|  |         gaps_out = 5; | ||||||
|  |         border_size = 1; | ||||||
|  |         "col.active_border" = "rgb(98971A) rgb(CC241D) 45deg"; | ||||||
|  |         layout = "master"; | ||||||
|  |       }; | ||||||
|  |  | ||||||
|  |       misc = { | ||||||
|  |         # disable refreshs when nothing is going on | ||||||
|  |         vfr = false; | ||||||
|  |         disable_hyprland_logo = true; | ||||||
|  |       }; | ||||||
|  |  | ||||||
|  |       input = { | ||||||
|  |         kb_layout = "de"; | ||||||
|  |         # remap caps lock to ctrl | ||||||
|  |         kb_options = "ctrl:nocaps"; | ||||||
|  |         numlock_by_default = true; | ||||||
|  |         # mouse input should be unchanged | ||||||
|  |         natural_scroll = false; | ||||||
|  |         sensitivity = 0.3; | ||||||
|  |         touchpad = { | ||||||
|  |           disable_while_typing = false; | ||||||
|  |           natural_scroll = true; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |  | ||||||
|  |       gestures = { | ||||||
|  |         workspace_swipe = true; | ||||||
|  |         workspace_swipe_fingers = 4; | ||||||
|  |         workspace_swipe_touch = true; | ||||||
|  |       }; | ||||||
|  |  | ||||||
|  |       decoration = { | ||||||
|  |         rounding = 7; | ||||||
|  |         # active_opacity = 0.95; | ||||||
|  |         inactive_opacity = 0.9; | ||||||
|  |  | ||||||
|  |         shadow = { | ||||||
|  |           enabled = false; | ||||||
|  |         }; | ||||||
|  |  | ||||||
|  |         # blur is set on a per-program basis | ||||||
|  |         windowrulev2 = [ | ||||||
|  |           # kitty should behave like a floating window | ||||||
|  |           "animation popin, class:kitty" | ||||||
|  |           "move cursor -50% -50%, class:kitty" | ||||||
|  |           "float, class:kitty" | ||||||
|  |           "size 50% 50%, class:kitty" | ||||||
|  |  | ||||||
|  |           # some more floating windows | ||||||
|  |           "float, class:org.gnome.Settings" | ||||||
|  |           "float, class:desktopclient.owncloud.com" | ||||||
|  |           "float, class:org.keepassxc.KeePassXC" | ||||||
|  |  | ||||||
|  |         ]; | ||||||
|  |       }; | ||||||
|  |  | ||||||
|  |       monitor = [ | ||||||
|  |         "eDP-1, 3840x2160, 0x0, 1.5" # the internal laptop monitor | ||||||
|  |         # Samsung monitor at irchel (matching the description) | ||||||
|  |         # "desc:Samsung Electric Company LS27D80xU HK7X800803, 3840x2160, auto-up, 1.5" | ||||||
|  |         ", preferred, auto-up, auto" # automatically add any newly detected monitor | ||||||
|  |       ]; | ||||||
|  |  | ||||||
|  |       xwayland = { | ||||||
|  |         enabled = false; | ||||||
|  |       }; | ||||||
|  |  | ||||||
|  |       env = [ | ||||||
|  |         # force apps to use wayland | ||||||
|  |         "NIXOS_OZONE_WL, 1" | ||||||
|  |         "ELECTRON_OZONE_PLATFORM_HINT, wayland" | ||||||
|  |         # set the scale factor for GDK apps | ||||||
|  |         "GDK_SCALE, 1.5" | ||||||
|  |         # set the scale factor for QT apps | ||||||
|  |         "QT_SCALE_FACTOR, 1.5" | ||||||
|  |         # set the scale factor for GTK apps | ||||||
|  |       ]; | ||||||
|  |     }; | ||||||
|  |  | ||||||
|  |     plugins = [ | ||||||
|  |       # Global overview | ||||||
|  |       pkgs.hyprlandPlugins.hyprspace | ||||||
|  |       # Touch gestures | ||||||
|  |       pkgs.hyprlandPlugins.hyprgrass | ||||||
|  |     ]; | ||||||
|  |  | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   services.swaync.enable = true; | ||||||
|  | } | ||||||
							
								
								
									
										52
									
								
								modules/home-manager/hypr/hyprlock.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								modules/home-manager/hypr/hyprlock.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | |||||||
|  | {inputs, pkgs, ...}: | ||||||
|  | { | ||||||
|  |   programs.hyprlock = { | ||||||
|  |     enable = true; | ||||||
|  |     settings = { | ||||||
|  |       general = { | ||||||
|  |         # immediately lock the screen | ||||||
|  |         grace = 0; | ||||||
|  |         no_fade_in = false; | ||||||
|  |         disable_loading_bar = false; | ||||||
|  |       }; | ||||||
|  |  | ||||||
|  |       background =  { | ||||||
|  |         blur_passes = 3; | ||||||
|  |         blur_size = 10; | ||||||
|  |         # image is set by stylix | ||||||
|  |       }; | ||||||
|  |  | ||||||
|  |       input-field = { | ||||||
|  |         monitor = ""; | ||||||
|  |         size = "300, 60"; | ||||||
|  |         # radius = 15; | ||||||
|  |         position = "0, -250"; | ||||||
|  |         halign = "center"; | ||||||
|  |         valign = "center"; | ||||||
|  |       }; | ||||||
|  |  | ||||||
|  |       label = [ | ||||||
|  |         { | ||||||
|  |           # Day-Month-Date | ||||||
|  |           monitor = ""; | ||||||
|  |           text = ''cmd[update:1000] echo -e "$(date +"%A, %B %d")"''; | ||||||
|  |           font_size = 28; | ||||||
|  |           position = "0, 490"; | ||||||
|  |           halign = "center"; | ||||||
|  |           valign = "center"; | ||||||
|  |         } | ||||||
|  |         # Time | ||||||
|  |         { | ||||||
|  |           monitor = ""; | ||||||
|  |           text = ''cmd[update:1000] echo "<span>$(date +"%H:%M")</span>"''; | ||||||
|  |           font_size = 160; | ||||||
|  |           font_weight = "bold"; | ||||||
|  |           # font_family = "steelfish outline regular"; | ||||||
|  |           position = "0, 370"; | ||||||
|  |           halign = "center"; | ||||||
|  |           valign = "center"; | ||||||
|  |         } | ||||||
|  |       ]; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | } | ||||||
							
								
								
									
										63
									
								
								modules/home-manager/hypr/hyprpaper.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								modules/home-manager/hypr/hyprpaper.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,63 @@ | |||||||
|  | { | ||||||
|  |   pkgs, | ||||||
|  |   lib, | ||||||
|  |  ... | ||||||
|  | }: | ||||||
|  | with lib; let | ||||||
|  |   # # load the wallpapers from the wallpapers directory - this gives a set with the folder content | ||||||
|  |   # dirContent = builtins.readDir ../../../wallpapers; | ||||||
|  |   # wallpaperString = lib.strings.concatMapStrings (x: " " + x) wallpapers; | ||||||
|  |   # # # load each wallpaper and keep its path (now in the nix store) as an array | ||||||
|  |   # # wallpapers = map (x: builtins.readDir "${../../../wallpapers}/${x.value}") dirContent; | ||||||
|  |   # # wallpaperString = lib.strings.concatMapStrings (x: " " + x) wallpapers; | ||||||
|  |  | ||||||
|  |   # # script that picks a random wallpaper from the array and sets it as the desktop background | ||||||
|  |   # monitor = ""; # leave empty to set the wallpaper on all monitors | ||||||
|  |  | ||||||
|  |   # wallpaperRandomizer = pkgs.writeShellScriptBin "wallpaperRandomizer" '' | ||||||
|  |   #   wallpaper=$(shuf -n 1 -e ${wallpaperString}) | ||||||
|  |   #   hyprctl hyprpaper unload all | ||||||
|  |   #   hyprctl hyprpaper preload $wallpaper | ||||||
|  |   #   hyprctl hyprpaper wallpaper "${monitor},$wallpaper" | ||||||
|  |   # ''; | ||||||
|  |  | ||||||
|  | in { | ||||||
|  |   # home.packages = [wallpaperRandomizer]; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   services.hyprpaper = { | ||||||
|  |     enable = true; | ||||||
|  |   }; | ||||||
|  |   #   settings = { | ||||||
|  |   #     ipc = "off"; | ||||||
|  |   #     splash = false; | ||||||
|  |   #   }; | ||||||
|  |   # }; | ||||||
|  |  | ||||||
|  |   # systemd.user = { | ||||||
|  |   #   services.wallpaperRandomizer = { | ||||||
|  |   #     Install = {WantedBy = ["graphical-session.target"];}; | ||||||
|  |  | ||||||
|  |   #     Unit = { | ||||||
|  |   #       Description = "Set random desktop background using hyprpaper"; | ||||||
|  |   #       After = ["graphical-session-pre.target"]; | ||||||
|  |   #       PartOf = ["graphical-session.target"]; | ||||||
|  |   #     }; | ||||||
|  |  | ||||||
|  |   #     Service = { | ||||||
|  |   #       Type = "oneshot"; | ||||||
|  |   #       ExecStart = "${wallpaperRandomizer}/bin/wallpaperRandomizer"; | ||||||
|  |   #       IOSchedulingClass = "idle"; | ||||||
|  |   #     }; | ||||||
|  |   #   }; | ||||||
|  |  | ||||||
|  |   #   timers.wallpaperRandomizer = { | ||||||
|  |   #     Unit = {Description = "Set random desktop background using hyprpaper on an interval";}; | ||||||
|  |  | ||||||
|  |   #     Timer = {OnUnitActiveSec = "6h";}; | ||||||
|  |  | ||||||
|  |   #     Install = {WantedBy = ["timers.target"];}; | ||||||
|  |   #   }; | ||||||
|  |   # }; | ||||||
|  | } | ||||||
							
								
								
									
										239
									
								
								modules/home-manager/hypr/waybar.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										239
									
								
								modules/home-manager/hypr/waybar.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,239 @@ | |||||||
|  | {inputs, pkgs, ...}: | ||||||
|  | { | ||||||
|  |     # required to autoload fonts from packages installed via Home Manager | ||||||
|  |     fonts.fontconfig.enable = true; | ||||||
|  |  | ||||||
|  |     # waybar requires font-awesome | ||||||
|  |     home.packages = [ | ||||||
|  |         pkgs.pavucontrol | ||||||
|  |     ]; | ||||||
|  |  | ||||||
|  |     # enable waybar | ||||||
|  |     programs.waybar.enable = true; | ||||||
|  |     programs.waybar = { | ||||||
|  |         settings = { | ||||||
|  |  | ||||||
|  |             mainBar = { | ||||||
|  |                 margin-top = 2; | ||||||
|  |                 margin-bottom = 2; | ||||||
|  |                 margin-left = 5; | ||||||
|  |                 margin-right = 5; | ||||||
|  |  | ||||||
|  |                 layer = "top"; | ||||||
|  |                 position = "top"; | ||||||
|  |                 spacing = 5; | ||||||
|  |  | ||||||
|  |                 modules-left = [ | ||||||
|  |                     "hyprland/workspaces" | ||||||
|  |                     "hyprland/window" | ||||||
|  |                 ]; | ||||||
|  |  | ||||||
|  |                 modules-center = [ | ||||||
|  |                     "clock" | ||||||
|  |                     "custom/notification" | ||||||
|  |                 ]; | ||||||
|  |  | ||||||
|  |                 modules-right = [ | ||||||
|  |                     "tray" | ||||||
|  |                     "privacy" | ||||||
|  |                     "wireplumber" | ||||||
|  |                     "network" | ||||||
|  |                     "battery" | ||||||
|  |                     "backlight" | ||||||
|  |                     "idle_inhibitor" | ||||||
|  |                 ]; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |                 # module specific settings | ||||||
|  |                 "hyprland/workspaces" = { | ||||||
|  |                     format = "{icon}"; | ||||||
|  |                     format-icons = { | ||||||
|  |                         active = "●"; | ||||||
|  |                         default = "○"; | ||||||
|  |                     }; | ||||||
|  |                 }; | ||||||
|  |                 "hyprland/window"= { | ||||||
|  |                     "icon" = true; | ||||||
|  |                     "separate-outputs" = true; | ||||||
|  |                     "format" = "{}"; | ||||||
|  |                     "rewrite" = { | ||||||
|  |                         "(.*) — Mozilla Firefox" = "$1"; | ||||||
|  |                         "(.*) - fish" = "> [$1]"; | ||||||
|  |                         "(.*) - Visual Studio Code" = "$1"; | ||||||
|  |                     }; | ||||||
|  |                 }; | ||||||
|  |                 "clock" = { | ||||||
|  |                     format = "{:%H:%M}"; | ||||||
|  |                     interval = 1; | ||||||
|  |                     tooltip-format = "<tt>{calendar}</tt>"; | ||||||
|  |                     calendar = { | ||||||
|  |                         "format" = { | ||||||
|  |                             "today" = "<span color='#fAfBfC'><b>{}</b></span>"; | ||||||
|  |                         }; | ||||||
|  |                     }; | ||||||
|  |                 }; | ||||||
|  |                 "idle_inhibitor" = { | ||||||
|  |                     format = "{icon}"; | ||||||
|  |                     format-icons = { | ||||||
|  |                         activated = ""; | ||||||
|  |                         deactivated = ""; | ||||||
|  |                     }; | ||||||
|  |                     tooltip = "true"; | ||||||
|  |                 }; | ||||||
|  |                 "bluetooth" = { | ||||||
|  |                     format-on = ""; | ||||||
|  |                     format-off = "BT-off"; | ||||||
|  |                     format-disabled = ""; | ||||||
|  |                     format-connected-battery = "{device_battery_percentage}% "; | ||||||
|  |                     format-alt = "{device_alias} "; | ||||||
|  |                     tooltip-format = "{controller_alias}\t{controller_address}\n\n{num_connections} connected"; | ||||||
|  |                     tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}"; | ||||||
|  |                     tooltip-formaenumeratet-enumerate-connected = "{device_alias}\n{device_address}"; | ||||||
|  |                     tooltip-format-enumerate-connected-battery = "{device_alias}\n{device_address}\n{device_battery_percentage}%"; | ||||||
|  |                     on-click-right = "blueman-manager"; | ||||||
|  |                 }; | ||||||
|  |                 "battery" = { | ||||||
|  |                     interval = 60; | ||||||
|  |                     states = { | ||||||
|  |                         good = 80; | ||||||
|  |                         warning = 30; | ||||||
|  |                         critical = 10; | ||||||
|  |                     }; | ||||||
|  |                     format = "{capacity}% {icon}"; | ||||||
|  |                     format-charging = "{capacity}% "; | ||||||
|  |                     format-plugged = "{capacity}%  "; | ||||||
|  |                     format-icons = [ "" "" "" "" "" "" ]; | ||||||
|  |                 }; | ||||||
|  |                 "backlight" = { | ||||||
|  |                     "format" = "{percent}% {icon}"; | ||||||
|  |                     "format-icons" = ["" "" "" "" "" "" "" "" ""]; | ||||||
|  |                 }; | ||||||
|  |                 "wireplumber" = { | ||||||
|  |                     scroll-step = 10; | ||||||
|  |                     format = "{icon} {volume}%";# {format_source}"; | ||||||
|  |                     format-bluetooth = "{volume}% {icon}";# {format_source}"; | ||||||
|  |                     format-bluetooth-muted = " {icon}";# {format_source}"; | ||||||
|  |                     format-muted = " Muted";# {format_source}"; | ||||||
|  |                     # format-source = " {volume}%"; | ||||||
|  |                     # format-source-muted = ""; | ||||||
|  |                     format-icons = { | ||||||
|  |                         headphone = ""; | ||||||
|  |                         hands-free = ""; | ||||||
|  |                         headset = ""; | ||||||
|  |                         phone = ""; | ||||||
|  |                         portable = ""; | ||||||
|  |                         default = [ | ||||||
|  |                             "" | ||||||
|  |                             "" | ||||||
|  |                             "" | ||||||
|  |                         ]; | ||||||
|  |                     }; | ||||||
|  |                     on-click = "XDG_CURRENT_DESKTOP=GNOME gnome-control-center sound"; | ||||||
|  |                 }; | ||||||
|  |                 "tray" = { | ||||||
|  |                     spacing = 5; | ||||||
|  |                 }; | ||||||
|  |                 "custom/notification" = { | ||||||
|  |                     tooltip = false; | ||||||
|  |                     format = "{icon} {}"; | ||||||
|  |                     format-icons = { | ||||||
|  |                         notification = "<span foreground='red'><sup></sup></span>"; | ||||||
|  |                         none = ""; | ||||||
|  |                         dnd-notification = "<span foreground='red'><sup></sup></span>"; | ||||||
|  |                         dnd-none = ""; | ||||||
|  |                         inhibited-notification = "<span foreground='red'><sup></sup></span>"; | ||||||
|  |                         inhibited-none = ""; | ||||||
|  |                         dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>"; | ||||||
|  |                         dnd-inhibited-none = ""; | ||||||
|  |                     }; | ||||||
|  |                     return-type = "json"; | ||||||
|  |                     exec-if = "which swaync-client"; | ||||||
|  |                     exec = "swaync-client -swb"; | ||||||
|  |                     on-click = "sleep 0.1 && task-waybar"; | ||||||
|  |                     escape = true; | ||||||
|  |                 }; | ||||||
|  |                 "network" = { | ||||||
|  |                     format =  ""; | ||||||
|  |                     format-wifi = "{icon} {essid}"; | ||||||
|  |                     format-icons = [ "" "" "" "" "" ]; | ||||||
|  |                     format-ethernet = " {ipaddr}/{cidr}"; | ||||||
|  |                     format-disconnected = ""; | ||||||
|  |                     tooltip-format = " {ifname} via {gwaddr}"; | ||||||
|  |                     tooltip-format-wifi = "SSID: {essid}({signalStrength}%), {frequency} MHz\nInterface: {ifname}\nIP: {ipaddr}\nGW: {gwaddr}\n\n<span color='#a6da95'>{bandwidthUpBits}</span>\t<span color='#ee99a0'>{bandwidthDownBits}</span>\t<span color='#c6a0f6'>{bandwidthTotalBits}</span>"; | ||||||
|  |                     tooltip-format-ethernet = "{ifname} "; | ||||||
|  |                     tooltip-format-disconnected = "Disconnected"; | ||||||
|  |                     on-click = "XDG_CURRENT_DESKTOP=GNOME gnome-control-center wifi"; | ||||||
|  |                 }; | ||||||
|  |                 "privacy" = { | ||||||
|  |                     icon-spacing = 4; | ||||||
|  |                     # icon-size" = 18; | ||||||
|  |                     transition-duration = 250; | ||||||
|  |                     modules = [ | ||||||
|  |                         { | ||||||
|  |                             type = "screenshare"; | ||||||
|  |                             tooltip = true; | ||||||
|  |                             # tooltip-icon-size = 24 | ||||||
|  |                         } | ||||||
|  |                         { | ||||||
|  |                             type = "audio-out"; | ||||||
|  |                             tooltip = true; | ||||||
|  |                             # tooltip-icon-size = 24 | ||||||
|  |                         } | ||||||
|  |                         { | ||||||
|  |                             type = "audio-in"; | ||||||
|  |                             tooltip = true; | ||||||
|  |                             # tooltip-icon-size = 24 | ||||||
|  |                         } | ||||||
|  |                     ]; | ||||||
|  |                 }; | ||||||
|  |             }; | ||||||
|  |         }; | ||||||
|  |  | ||||||
|  |         style = '' | ||||||
|  |             * { | ||||||
|  |                 font-family: "FiraCode Nerd Font"; | ||||||
|  |                 font-weight: bold; | ||||||
|  |                 font-size: 22px; | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             window#waybar { | ||||||
|  |                 background-color: transparent; | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |             .module { | ||||||
|  |                 background: rgba(0, 0, 0, 0.6); | ||||||
|  |                 color: white; | ||||||
|  |                 border-radius: 7px; | ||||||
|  |                 padding: 5px 5px 5px 5px; | ||||||
|  |                 margin: 5px 0; | ||||||
|  |             } | ||||||
|  |             box.module button:hover { | ||||||
|  |                 box-shadow: inset 0 -3px #ffffff; | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             .modules-left { | ||||||
|  |                 padding: 3px; | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             .modules-right { | ||||||
|  |                 padding: 3px; | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             .modules-center { | ||||||
|  |                 padding: 3px; | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             #workspaces button { | ||||||
|  |                 color: #ffffff; | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             #battery.warning { | ||||||
|  |                 background:rgba(240, 165, 0, 0.6); | ||||||
|  |             } | ||||||
|  |             #battery.critical { | ||||||
|  |                 background:rgba(255, 0, 0, 0.6); | ||||||
|  |             } | ||||||
|  |         ''; | ||||||
|  |     }; | ||||||
|  | } | ||||||
| @@ -1,151 +0,0 @@ | |||||||
| {inputs, pkgs, ...}:  |  | ||||||
| { |  | ||||||
|   programs.kitty.enable = true; |  | ||||||
|  |  | ||||||
|   wayland.windowManager.hyprland = { |  | ||||||
|     enable = true; |  | ||||||
|     systemd.enable = true; |  | ||||||
|     settings = { |  | ||||||
|       "$mod" = "SUPER"; |  | ||||||
|       bind = |  | ||||||
|         [ |  | ||||||
|           "$mod, F, exec, firefox" |  | ||||||
|           "$mod, return, exec, walker" |  | ||||||
|           "$mod_SHIFT, return, exec, kitty" |  | ||||||
|           "$mod, s, exec, code" |  | ||||||
|           "$mod, Q, killactive," # Close window |  | ||||||
|           "$mod, T, togglefloating," # Toggle Floating |  | ||||||
|  |  | ||||||
|           "$mod, left, movefocus, l" # Move focus left |  | ||||||
|           "$mod, right, movefocus, r" # Move focus Right |  | ||||||
|           "$mod, up, movefocus, u" # Move focus Up |  | ||||||
|           "$mod, down, movefocus, d" # Move focus Down |  | ||||||
|           # "$shiftMod, up, focusmonitor, -1" # Focus previous monitor |  | ||||||
|           # "$shiftMod, down, focusmonitor, 1" # Focus next monitor |  | ||||||
|           # "$shiftMod, left, layoutmsg, addmaster" # Add to master |  | ||||||
|           # "$shiftMod, right, layoutmsg, removemaster" # Remove from master |  | ||||||
|         ]; |  | ||||||
|       general = { |  | ||||||
|         resize_on_border = true; |  | ||||||
|         gaps_in = 5; |  | ||||||
|         gaps_out = 5; |  | ||||||
|         border_size = 1; |  | ||||||
|         layout = "master"; |  | ||||||
|       }; |  | ||||||
|        |  | ||||||
|       misc = { |  | ||||||
|         disable_hyprland_logo = true; |  | ||||||
|       }; |  | ||||||
|  |  | ||||||
|       input = { |  | ||||||
|         kb_layout = "de"; |  | ||||||
|         kb_options = "caps:control"; |  | ||||||
|         numlock_by_default = true; |  | ||||||
|         # mouse input should be unchanged |  | ||||||
|         natural_scroll = false; |  | ||||||
|         touchpad = { |  | ||||||
|           disable_while_typing = false; |  | ||||||
|           natural_scroll = true; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
|  |  | ||||||
|       gestures = { |  | ||||||
|         workspace_swipe = true; |  | ||||||
|         workspace_swipe_fingers = 4; |  | ||||||
|         workspace_swipe_touch = true; |  | ||||||
|       }; |  | ||||||
|      |  | ||||||
|       decoration = { |  | ||||||
|         rounding = 5; |  | ||||||
|       }; |  | ||||||
|       # plugin.virtual-desktops = {} |  | ||||||
|  |  | ||||||
|       monitor = [ |  | ||||||
|         "eDP-1, highres, 0x0, 1.5" # the internal laptop monitor |  | ||||||
|         ", preferred, auto, 1" # automatically add any newly detected monitor |  | ||||||
|       ]; |  | ||||||
|     }; |  | ||||||
|  |  | ||||||
|     plugins = [ |  | ||||||
|       # Touch gestures: https://github.com/horriblename/hyprgrass |  | ||||||
|       # inputs.hyprgrass.packages.${pkgs.system}.default |  | ||||||
|       # Virtual desktops: https://github.com/levnikmyskin/hyprland-virtual-desktops |  | ||||||
|       # inputs.hyprland-virtual-desktops.packages.${pkgs.system}.virtual-desktops |  | ||||||
|     ]; |  | ||||||
|   }; |  | ||||||
|  |  | ||||||
|   imports = [ inputs.hyprpanel.homeManagerModules.hyprpanel ]; |  | ||||||
|   # the overlay makes this available as a home manager module |  | ||||||
|   programs.hyprpanel = { |  | ||||||
|     enable = true; |  | ||||||
|     # autostart after hyprland |  | ||||||
|     hyprland.enable = true; |  | ||||||
|     overwrite.enable = true; |  | ||||||
|     overlay.enable = true; |  | ||||||
|      |  | ||||||
|     theme = "monochrome"; |  | ||||||
|  |  | ||||||
|     settings = { |  | ||||||
|       bar = { |  | ||||||
|         clock.format = "%H:%M"; |  | ||||||
|         clock.showIcon = false; |  | ||||||
|         launcher.icon = "🚀"; |  | ||||||
|         launcher.autoDetectIcon = true; |  | ||||||
|         workspaces.show_icons = true; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
|  |  | ||||||
|     layout = { |  | ||||||
|       "bar.layouts" = { |  | ||||||
|         "*" = { |  | ||||||
|           left = ["workspaces"]; |  | ||||||
|           middle = ["clock"]; |  | ||||||
|           right = ["volume" "systray" "nm-applet" "notifications" ]; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
|      |  | ||||||
|   }; |  | ||||||
|  |  | ||||||
|  |  | ||||||
|   programs.walker = { |  | ||||||
|     enable = true; |  | ||||||
|     runAsService = true; |  | ||||||
|  |  | ||||||
|     # All options from the config.json can be used here. |  | ||||||
|     config = { |  | ||||||
|       search.placeholder = "Search"; |  | ||||||
|       ui.fullscreen = true; |  | ||||||
|       list = { |  | ||||||
|         height = 200; |  | ||||||
|       }; |  | ||||||
|       websearch.prefix = "?"; |  | ||||||
|       switcher.prefix = "/"; |  | ||||||
|     }; |  | ||||||
|  |  | ||||||
|     # If this is not set the default styling is used. |  | ||||||
|     # style = '' |  | ||||||
|     #   * { |  | ||||||
|     #     color: #dcd7ba; |  | ||||||
|     #   } |  | ||||||
|     # ''; |  | ||||||
|   }; |  | ||||||
|  |  | ||||||
|  |  | ||||||
|   programs.hyprlock = { |  | ||||||
|     enable = true; |  | ||||||
|     settings = { |  | ||||||
|       general = { |  | ||||||
|         grace = 5; |  | ||||||
|         no_fade_in = false; |  | ||||||
|         disable_loading_bar = false; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
|   # Style the lock screen |  | ||||||
|   }; |  | ||||||
|  |  | ||||||
|   services.network-manager-applet = { |  | ||||||
|     enable = true; |  | ||||||
|   }; |  | ||||||
|  |  | ||||||
| } |  | ||||||
| @@ -3,5 +3,4 @@ | |||||||
|   home.packages = [ |   home.packages = [ | ||||||
|     pkgs.keepassxc |     pkgs.keepassxc | ||||||
|   ]; |   ]; | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										65
									
								
								modules/home-manager/kitty.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								modules/home-manager/kitty.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,65 @@ | |||||||
|  | {pkgs, lib, ...}: | ||||||
|  | let | ||||||
|  |   stylix = import ./stylix.nix { inherit pkgs; }; | ||||||
|  | in | ||||||
|  | { | ||||||
|  |     programs.kitty = { | ||||||
|  |         enable = true; | ||||||
|  |         shellIntegration.enableFishIntegration = true; | ||||||
|  |         settings = { | ||||||
|  |  | ||||||
|  |  | ||||||
|  |             # # import the colors from the stylix theme, but keep the background black | ||||||
|  |             # color0 = stylix.stylix.base16Scheme.base00; | ||||||
|  |             # color8 = stylix.stylix.base16Scheme.base08; | ||||||
|  |  | ||||||
|  |             # color1 = stylix.stylix.base16Scheme.base01; | ||||||
|  |             # color9 = stylix.stylix.base16Scheme.base09; | ||||||
|  |  | ||||||
|  |             # color2 = stylix.stylix.base16Scheme.base02; | ||||||
|  |             # color10 = stylix.stylix.base16Scheme.base0A; | ||||||
|  |  | ||||||
|  |             # color3 = stylix.stylix.base16Scheme.base03; | ||||||
|  |             # color11 = stylix.stylix.base16Scheme.base0B; | ||||||
|  |  | ||||||
|  |             # color4 = stylix.stylix.base16Scheme.base04; | ||||||
|  |             # color12 = stylix.stylix.base16Scheme.base0C; | ||||||
|  |  | ||||||
|  |             # color5 = stylix.stylix.base16Scheme.base05; | ||||||
|  |             # color13 = stylix.stylix.base16Scheme.base0D; | ||||||
|  |  | ||||||
|  |             # color6 = stylix.stylix.base16Scheme.base06; | ||||||
|  |             # color14 = stylix.stylix.base16Scheme.base0E; | ||||||
|  |  | ||||||
|  |             # color7 = stylix.stylix.base16Scheme.base07; | ||||||
|  |             # color15 = stylix.stylix.base16Scheme.base0F; | ||||||
|  |  | ||||||
|  |             # also reuse the background opacity by stylix | ||||||
|  |             background_opacity = stylix.stylix.opacity.terminal; | ||||||
|  |  | ||||||
|  |             background = "#000000"; | ||||||
|  |  | ||||||
|  |             font_family = stylix.stylix.fonts.monospace.name; | ||||||
|  |             font_size = stylix.stylix.fonts.sizes.terminal; | ||||||
|  |             confirm_os_window_close = 0; | ||||||
|  |             enable_audio_bell = false; | ||||||
|  |             cursor_trail = 3; | ||||||
|  |             cursor_trail_decay = "0.1 0.4"; | ||||||
|  |             url_style = "curly"; | ||||||
|  |             notify_on_cmd_finish = "unfocused"; | ||||||
|  |         }; | ||||||
|  |  | ||||||
|  |         keybindings = { | ||||||
|  |             # copy and paste | ||||||
|  |             "ctrl+shift+c" = "copy_to_clipboard"; | ||||||
|  |             "ctrl+shift+v" = "paste_from_clipboard"; | ||||||
|  |             # zoom | ||||||
|  |             "ctrl+shift+plus" = "increase_font_size"; | ||||||
|  |             "ctrl+shift+minus" = "decrease_font_size"; | ||||||
|  |             "ctrl+shift+0" = "reset_font_size"; | ||||||
|  |             # tabs | ||||||
|  |             "ctrl+shift+t" = "new_tab"; | ||||||
|  |             "ctrl+shift+w" = "close_tab"; | ||||||
|  |         }; | ||||||
|  |     }; | ||||||
|  | } | ||||||
							
								
								
									
										8
									
								
								modules/home-manager/kubectl.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								modules/home-manager/kubectl.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | {pkgs, ...}:  | ||||||
|  | { | ||||||
|  |     home.packages = [ | ||||||
|  |         pkgs.kubie | ||||||
|  |         pkgs.kubectl | ||||||
|  |     ]; | ||||||
|  |      | ||||||
|  | } | ||||||
							
								
								
									
										96
									
								
								modules/home-manager/stylix.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								modules/home-manager/stylix.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,96 @@ | |||||||
|  | {pkgs, ...}: | ||||||
|  | { | ||||||
|  |     stylix = { | ||||||
|  |         # Stylix is already enabled since the system is configured to use it | ||||||
|  |         # enable = true; | ||||||
|  |         # don't theme applications by default | ||||||
|  |         autoEnable = false; | ||||||
|  |  | ||||||
|  |         cursor = { | ||||||
|  |             package = pkgs.apple-cursor; | ||||||
|  |             name = "macOS"; | ||||||
|  |             size = 35; | ||||||
|  |         }; | ||||||
|  |  | ||||||
|  |         iconTheme = { | ||||||
|  |             enable = true; | ||||||
|  |             package = pkgs.tela-icon-theme; | ||||||
|  |         }; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |         image = ./../../wallpapers/magicpattern-87PP9Zd7MNo-unsplash.jpg; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |         fonts = { | ||||||
|  |  | ||||||
|  |             serif = { | ||||||
|  |                 package = pkgs.dejavu_fonts; | ||||||
|  |                 name = "DejaVu Serif"; | ||||||
|  |             }; | ||||||
|  |  | ||||||
|  |             sansSerif = { | ||||||
|  |                 package = pkgs.dejavu_fonts; | ||||||
|  |                 name = "DejaVu Sans"; | ||||||
|  |             }; | ||||||
|  |  | ||||||
|  |             monospace = { | ||||||
|  |                 package = pkgs.nerdfonts.override { fonts = [ "FiraCode" ]; }; | ||||||
|  |                 name = "FiraCode Nerd Font Mono"; | ||||||
|  |             }; | ||||||
|  |  | ||||||
|  |             emoji = { | ||||||
|  |                 package = pkgs.noto-fonts-emoji; | ||||||
|  |                 name = "Noto Color Emoji"; | ||||||
|  |             }; | ||||||
|  |  | ||||||
|  |             sizes = { | ||||||
|  |                 applications = 15; | ||||||
|  |                 desktop = 15; | ||||||
|  |                 popups = 12; | ||||||
|  |                 terminal = 15; | ||||||
|  |             }; | ||||||
|  |         }; | ||||||
|  |  | ||||||
|  |         opacity = { | ||||||
|  |             applications = 1.0; | ||||||
|  |             desktop = 1.0; | ||||||
|  |             popups = 0.9; | ||||||
|  |             terminal = 0.8; | ||||||
|  |         }; | ||||||
|  |     }; | ||||||
|  |  | ||||||
|  |     stylix.base16Scheme = { | ||||||
|  |         scheme = "onelight"; | ||||||
|  |         author = "https://github.com/one-dark"; | ||||||
|  |         base00 = "#fafafa"; | ||||||
|  |         base01 = "#f4f4f4"; | ||||||
|  |         base02 = "#e5e5e6"; | ||||||
|  |         base03 = "#dfdfe0"; | ||||||
|  |         base04 = "#d7d7d8"; | ||||||
|  |         base05 = "#383a42"; | ||||||
|  |         base06 = "#202227"; | ||||||
|  |         base07 = "#090a0b"; | ||||||
|  |         base08 = "#d84a3d"; | ||||||
|  |         base09 = "#a626a4"; | ||||||
|  |         base0A = "#c18401"; | ||||||
|  |         base0B = "#50a14f"; | ||||||
|  |         base0C = "#0070a8"; | ||||||
|  |         base0D = "#4078f2"; | ||||||
|  |         base0E = "#a626a4"; | ||||||
|  |         base0F = "#986801"; | ||||||
|  |  | ||||||
|  |     }; | ||||||
|  |  | ||||||
|  |     stylix.targets = { | ||||||
|  |         hyprpaper.enable = true; | ||||||
|  |         hyprlock.enable = true; | ||||||
|  |         gnome.enable = true; | ||||||
|  |  | ||||||
|  |         # disabled because they overwrite too many settings | ||||||
|  |         # wofi.enable = true; | ||||||
|  |         # vscode.enable = true; | ||||||
|  |         # waybar.enable = true; | ||||||
|  |         # kitty.enable = true; | ||||||
|  |  | ||||||
|  |     }; | ||||||
|  | } | ||||||
							
								
								
									
										95
									
								
								modules/home-manager/wofi.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								modules/home-manager/wofi.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,95 @@ | |||||||
|  | { config, pkgs, lib, ... }: | ||||||
|  | let | ||||||
|  |   stylix = import ./stylix.nix { inherit pkgs; }; | ||||||
|  |  | ||||||
|  | in { | ||||||
|  |  | ||||||
|  |   home.packages = with pkgs; [ wofi-emoji ]; | ||||||
|  |  | ||||||
|  |   programs.wofi = { | ||||||
|  |     enable = true; | ||||||
|  |  | ||||||
|  |     settings = { | ||||||
|  |       # global layout | ||||||
|  |       width = "50%"; | ||||||
|  |       height = "50%"; | ||||||
|  |       orientation = "vertical"; | ||||||
|  |       hide_scroll = true; | ||||||
|  |       line_wrap = "off"; | ||||||
|  |       dynamic_lines = true; | ||||||
|  |  | ||||||
|  |       # search behaviour | ||||||
|  |       matching = "fuzzy"; | ||||||
|  |       single_click = true; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |       show = "drun"; | ||||||
|  |       prompt = "Launch..."; | ||||||
|  |       # normal_window = true; | ||||||
|  |       layer = "top"; | ||||||
|  |       term = "foot"; | ||||||
|  |       halign = "fill"; | ||||||
|  |  | ||||||
|  |       # Rich rendering | ||||||
|  |       allow_markup = true; | ||||||
|  |       allow_images = true; | ||||||
|  |       image_size = 24; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |       exec_search = false; | ||||||
|  |       hide_search = false; | ||||||
|  |       parse_search = false; | ||||||
|  |       insensitive = true; | ||||||
|  |       no_actions = true; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |       filter_rate = 100; | ||||||
|  |       key_expand = "Tab"; | ||||||
|  |       key_exit = "Escape"; | ||||||
|  |  | ||||||
|  |     }; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     style = '' | ||||||
|  |       * { | ||||||
|  |         font-family: ${stylix.stylix.fonts.sansSerif.name}; | ||||||
|  |         font-size: ${builtins.toString (stylix.stylix.fonts.sizes.applications + 10)}px; | ||||||
|  |         color: ${stylix.stylix.base16Scheme.base04}; | ||||||
|  |         background: transparent; | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       #window { | ||||||
|  |         background: rgba(41, 46, 66, 0.5); | ||||||
|  |         margin: auto; | ||||||
|  |         padding: 10px; | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       #input { | ||||||
|  |         padding: 10px; | ||||||
|  |         margin-bottom: 10px; | ||||||
|  |         border-radius: 15px; | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       #outer-box { | ||||||
|  |         padding: 20px; | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       #img { | ||||||
|  |         margin-right: 6px; | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       #entry { | ||||||
|  |         padding: 10px; | ||||||
|  |         border-radius: 15px; | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       #entry:selected { | ||||||
|  |         background-color: #2e3440; | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       #text { | ||||||
|  |         margin: 2px; | ||||||
|  |       } | ||||||
|  |     ''; | ||||||
|  |   }; | ||||||
|  | } | ||||||
| @@ -1,11 +1,22 @@ | |||||||
| {inputs, pkgs, ...}:  | {inputs, pkgs, ...}: | ||||||
| { | { | ||||||
|   xdg.enable = true; |   xdg.enable = true; | ||||||
|  |  | ||||||
|   xdg.portal = { |   xdg.portal = { | ||||||
|     enable = true; |     enable = true; | ||||||
|  |     xdgOpenUsePortal = true; | ||||||
|  |  | ||||||
|  |     # configPackages = [ pkgs.hyprland ]; | ||||||
|  |     config = { | ||||||
|  |       common.default = ["gtk"]; | ||||||
|  |       hyprland.default = ["gtk" "hyprland"]; | ||||||
|  |     }; | ||||||
|  |  | ||||||
|     extraPortals = [ |     extraPortals = [ | ||||||
|         pkgs.xdg-desktop-portal-gtk |       pkgs.xdg-desktop-portal-gtk | ||||||
|  |       pkgs.xdg-desktop-portal-wlr | ||||||
|  |       pkgs.xdg-desktop-portal-hyprland | ||||||
|     ]; |     ]; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										26
									
								
								modules/nixos/bluetooth.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								modules/nixos/bluetooth.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | |||||||
|  | { | ||||||
|  |     config, | ||||||
|  |     lib, | ||||||
|  |     pkgs, | ||||||
|  |     ... | ||||||
|  | }: | ||||||
|  | { | ||||||
|  |   environment.systemPackages = [ | ||||||
|  |     pkgs.bluez | ||||||
|  |   ]; | ||||||
|  |   hardware.bluetooth = { | ||||||
|  |     enable = true; | ||||||
|  |     powerOnBoot = false; | ||||||
|  |     settings = { | ||||||
|  |       General = { | ||||||
|  |         Name = "Hello"; | ||||||
|  |         ControllerMode = "dual"; | ||||||
|  |         FastConnectable = "true"; | ||||||
|  |         Experimental = "true"; | ||||||
|  |       }; | ||||||
|  |       Policy = { | ||||||
|  |         AutoEnable = "true"; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | } | ||||||
							
								
								
									
										3
									
								
								modules/nixos/flakes.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								modules/nixos/flakes.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | { | ||||||
|  |   nix.settings.experimental-features = [ "nix-command" "flakes" ]; | ||||||
|  | } | ||||||
							
								
								
									
										9
									
								
								modules/nixos/flatpak.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								modules/nixos/flatpak.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   lib, | ||||||
|  |   pkgs, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | { | ||||||
|  |   services.flatpak.enable = true; | ||||||
|  | } | ||||||
							
								
								
									
										11
									
								
								modules/nixos/fonts.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								modules/nixos/fonts.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   lib, | ||||||
|  |   pkgs, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | { | ||||||
|  |   # from here on fonts are managed on a user level | ||||||
|  |   fonts.fontDir.enable = true; | ||||||
|  |   fonts.fontconfig.enable = true; | ||||||
|  | } | ||||||
| @@ -20,5 +20,8 @@ | |||||||
|     enable = true; |     enable = true; | ||||||
|     wayland = true; |     wayland = true; | ||||||
|   }; |   }; | ||||||
|  |   security.pam.services.hyprlock = {}; | ||||||
|  |  | ||||||
|  |   security.pam.services.gdm.enableGnomeKeyring = true; | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										10
									
								
								modules/nixos/nh.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								modules/nixos/nh.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | |||||||
|  | { | ||||||
|  |     config, | ||||||
|  |     pkgs, | ||||||
|  |     ... | ||||||
|  | }: | ||||||
|  | { | ||||||
|  |   programs.nh = { | ||||||
|  |     enable = true; | ||||||
|  |   }; | ||||||
|  | } | ||||||
| @@ -1,8 +1,8 @@ | |||||||
| { | { | ||||||
|     config, |   config, | ||||||
|     lib, |   lib, | ||||||
|     pkgs, |   pkgs, | ||||||
|     ... |   ... | ||||||
| }: | }: | ||||||
| { | { | ||||||
|  |  | ||||||
| @@ -13,34 +13,34 @@ | |||||||
|       configuration = { |       configuration = { | ||||||
|         system.nixos.tags = [ "nvidia-enabled" ]; |         system.nixos.tags = [ "nvidia-enabled" ]; | ||||||
|         # Enable OpenGL |         # Enable OpenGL | ||||||
|         hardware.graphics = { |         hardware.graphics.enable = lib.mkForce true; | ||||||
|           enable = true; |         hardware.nvidia = lib.mkForce { | ||||||
|         }; |  | ||||||
|         hardware.nvidia = { |  | ||||||
|           # prime = { |  | ||||||
|           #   nvidiaBusId = "PCI:1:0:0"; |  | ||||||
|           #   intelBusId = "PCI:0:2:0"; |  | ||||||
|           # }; |  | ||||||
|           modesetting.enable = true; |           modesetting.enable = true; | ||||||
|           powerManagement.enable = true; |           powerManagement.enable = true; | ||||||
|  |           # features not available for the old graphics card | ||||||
|           powerManagement.finegrained = false; |           powerManagement.finegrained = false; | ||||||
|           open = false; |           open = false; | ||||||
|           nvidiaSettings = false; |           nvidiaSettings = false; | ||||||
|  |  | ||||||
|  |           prime = { | ||||||
|  |             sync.enable = true; | ||||||
|  |             nvidiaBusId = "PCI:1:0:0"; | ||||||
|  |             intelBusId = "PCI:0:2:0"; | ||||||
|  |           }; | ||||||
|  |  | ||||||
|           package = config.boot.kernelPackages.nvidiaPackages.mkDriver { |           package = config.boot.kernelPackages.nvidiaPackages.mkDriver { | ||||||
|             version = "565.77"; |             version = "575.51.02"; | ||||||
|             sha256_64bit = "sha256-CnqnQsRrzzTXZpgkAtF7PbH9s7wbiTRNcM0SPByzFHw="; |             sha256_64bit = "sha256-XZ0N8ISmoAC8p28DrGHk/YN1rJsInJ2dZNL8O+Tuaa0="; | ||||||
|             sha256_aarch64 = "sha256-LSAYUnhfnK3rcuPe1dixOwAujSof19kNOfdRHE7bToE="; |             openSha256 = "sha256-NQg+QDm9Gt+5bapbUO96UFsPnz1hG1dtEwT/g/vKHkw="; | ||||||
|             openSha256 = "sha256-Fxo0t61KQDs71YA8u7arY+503wkAc1foaa51vi2Pl5I="; |             settingsSha256 = "sha256-6n9mVkEL39wJj5FB1HBml7TTJhNAhS/j5hqpNGFQE4w="; | ||||||
|             settingsSha256 = "sha256-VUetj3LlOSz/LB+DDfMCN34uA4bNTTpjDrb6C6Iwukk="; |             usePersistenced = false; | ||||||
|             persistencedSha256 = "sha256-wnDjC099D8d9NJSp9D0CbsL+vfHXyJFYYgU3CwcqKww="; |  | ||||||
|           }; |           }; | ||||||
|         }; |         }; | ||||||
|         # overwrite the blacklists set previously |         # overwrite the blacklists set previously | ||||||
|         boot.extraModprobeConfig = ""; |         boot.extraModprobeConfig = lib.mkForce ""; | ||||||
|         boot.blacklistedKernelModules = []; |         boot.blacklistedKernelModules = lib.mkForce []; | ||||||
|         services.udev.extraRules = ""; |         services.udev.extraRules = lib.mkForce ""; | ||||||
|         services.xserver.videoDrivers = ["nvidia"]; |         services.xserver.videoDrivers = lib.mkForce ["nvidia"]; | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| @@ -51,7 +51,7 @@ | |||||||
|     blacklist nouveau |     blacklist nouveau | ||||||
|     options nouveau modeset=0 |     options nouveau modeset=0 | ||||||
|   ''; |   ''; | ||||||
|    |  | ||||||
|   services.udev.extraRules = '' |   services.udev.extraRules = '' | ||||||
|     # Remove NVIDIA USB xHCI Host Controller devices, if present |     # Remove NVIDIA USB xHCI Host Controller devices, if present | ||||||
|     ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{power/control}="auto", ATTR{remove}="1" |     ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{power/control}="auto", ATTR{remove}="1" | ||||||
| @@ -63,34 +63,8 @@ | |||||||
|     ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", ATTR{power/control}="auto", ATTR{remove}="1" |     ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", ATTR{power/control}="auto", ATTR{remove}="1" | ||||||
|   ''; |   ''; | ||||||
|  |  | ||||||
|  |  | ||||||
|     # # Remove the whole bridge responsible for the VGA/3D controller |     # # Remove the whole bridge responsible for the VGA/3D controller | ||||||
|     # ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x8086", ATTR{class}=="0x060400", ATTR{power/control}="auto", ATTR{remove}="1" |     # ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x8086", ATTR{class}=="0x060400", ATTR{power/control}="auto", ATTR{remove}="1" | ||||||
|  |  | ||||||
|   # # somehow the udev rules are not enough to prevent the nouveau driver from loading |  | ||||||
|   # # Also unload remove the bus by id manually |  | ||||||
|   # # unload 0000:01:00.1 and 0000:01:00.0 |  | ||||||
|   # # at boot echo 1 > /sys/bus/pci/devices/0000:01:00.1/remove |  | ||||||
|   # # at boot echo 1 > /sys/bus/pci/devices/0000:01:00.0/remove |  | ||||||
|  |  | ||||||
|   # systemd.services.remove-nouveau = { |  | ||||||
|   #   description = "Remove Nouveau PCI devices"; |  | ||||||
|   #   wantedBy = [ "multi-user.target" ]; |  | ||||||
|   #   after = [ "sysinit.target" ]; |  | ||||||
|   #   serviceConfig = { |  | ||||||
|   #     Type = "oneshot"; |  | ||||||
|   #     ExecStart = "${pkgs.coreutils}/bin/echo 1 > /sys/bus/pci/devices/0000:01:00.1/remove"; |  | ||||||
|   #     ExecStart = "${pkgs.coreutils}/bin/echo auto > /sys/bus/pci/devices/0000:00:01.0/power/control"; |  | ||||||
|   #     ExecStart = "${pkgs.coreutils}/bin/echo 1 > /sys/bus/pci/devices/0000:01:00.0/remove"; |  | ||||||
|   #     ExecStart = "${pkgs.coreutils}/bin/echo auto > /sys/bus/pci/devices/0000:00:01.0/power/control"; |  | ||||||
|   #   }; |  | ||||||
|   # }; |  | ||||||
|  |  | ||||||
|    |  | ||||||
|  |  | ||||||
|   boot.blacklistedKernelModules = [ "nouveau" "nvidia" "nvidia_drm" "nvidia_modeset" ]; |   boot.blacklistedKernelModules = [ "nouveau" "nvidia" "nvidia_drm" "nvidia_modeset" ]; | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| # Warning: used to have |  | ||||||
| # lib.mkdDefault |  | ||||||
|   | |||||||
							
								
								
									
										30
									
								
								modules/nixos/power.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								modules/nixos/power.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | |||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   lib, | ||||||
|  |   pkgs, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | { | ||||||
|  |   services.tlp = { | ||||||
|  |     enable = true; | ||||||
|  |     settings = { | ||||||
|  |       CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; | ||||||
|  |       CPU_SCALING_GOVERNOR_ON_AC = "performance"; | ||||||
|  |  | ||||||
|  |       CPU_ENERGY_PERF_POLICY_ON_BAT = "power"; | ||||||
|  |       CPU_ENERGY_PERF_POLICY_ON_AC = "performance"; | ||||||
|  |  | ||||||
|  |       CPU_MIN_PERF_ON_AC = 0; | ||||||
|  |       CPU_MAX_PERF_ON_AC = 100; | ||||||
|  |       CPU_MIN_PERF_ON_BAT = 0; | ||||||
|  |       CPU_MAX_PERF_ON_BAT = 50; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   systemd.sleep.extraConfig = '' | ||||||
|  |     AllowSuspend=yes | ||||||
|  |     AllowHibernation=yes | ||||||
|  |     AllowHybridSleep=yes | ||||||
|  |     AllowSuspendThenHibernate=yes | ||||||
|  |   ''; | ||||||
|  | } | ||||||
							
								
								
									
										11
									
								
								modules/nixos/stylix.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								modules/nixos/stylix.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   lib, | ||||||
|  |   pkgs, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | { | ||||||
|  |   stylix.enable = true; | ||||||
|  |   stylix.image = ./../../wallpapers/magicpattern-87PP9Zd7MNo-unsplash.jpg; | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -4,13 +4,19 @@ with lib.hm.gvariant; | |||||||
|   imports = [ |   imports = [ | ||||||
|     ../modules/home-manager/browser.nix |     ../modules/home-manager/browser.nix | ||||||
|     ../modules/home-manager/code.nix |     ../modules/home-manager/code.nix | ||||||
|  |     ../modules/home-manager/dev.nix | ||||||
|  |     ../modules/home-manager/documents.nix | ||||||
|     ../modules/home-manager/fish.nix |     ../modules/home-manager/fish.nix | ||||||
|     ../modules/home-manager/flatpaks.nix |     ../modules/home-manager/flatpaks.nix | ||||||
|     ../modules/home-manager/hyprland-customization.nix |     ../modules/home-manager/hypr | ||||||
|     ../modules/home-manager/keepassxc.nix |     ../modules/home-manager/keepassxc.nix | ||||||
|  |     ../modules/home-manager/kitty.nix | ||||||
|  |     ../modules/home-manager/kubectl.nix | ||||||
|     ../modules/home-manager/obsidian.nix |     ../modules/home-manager/obsidian.nix | ||||||
|     ../modules/home-manager/owncloud-client.nix |     ../modules/home-manager/owncloud-client.nix | ||||||
|  |     ../modules/home-manager/stylix.nix | ||||||
|     ../modules/home-manager/thunderbird.nix |     ../modules/home-manager/thunderbird.nix | ||||||
|  |     ../modules/home-manager/wofi.nix | ||||||
|     ../modules/home-manager/xdg-portals.nix |     ../modules/home-manager/xdg-portals.nix | ||||||
|   ]; |   ]; | ||||||
|  |  | ||||||
| @@ -23,38 +29,45 @@ with lib.hm.gvariant; | |||||||
|   home.username = "remy"; |   home.username = "remy"; | ||||||
|   home.homeDirectory = "/home/remy"; |   home.homeDirectory = "/home/remy"; | ||||||
|  |  | ||||||
|   #home.file.<filepath> = <content>; |  | ||||||
|    |  | ||||||
|   ## Utils relevant to this user only |   ## Utils relevant to this user only | ||||||
|   programs.git = { |   programs.git = { | ||||||
|     enable = true; |     enable = true; | ||||||
|     userName = "Remy Moll"; |     userName = "Remy Moll"; | ||||||
|     userEmail = "me@moll.re"; |     userEmail = "me@moll.re"; | ||||||
|   }; |   }; | ||||||
|    |  | ||||||
|  |  | ||||||
|   # ## Gnome keyboard and mouse settings |   ## XDG configuration | ||||||
|   # dconf.settings = { |   xdg = { | ||||||
|   #   # set the keyboard layout to german |     userDirs = { | ||||||
|   #   "org/gnome/desktop/input-sources" = { |       enable = true; | ||||||
|   #     current = mkUint32 0; |       desktop = "Desktop"; | ||||||
|   #     sources = [ (mkTuple [ "xkb" "de" ]) (mkTuple [ "xkb" "ch" ]) (mkTuple [ "xkb" "us" ]) ]; |       pictures = "Pictures"; | ||||||
|   #     xkb-options = [ "lv3:ralt_switch" ]; |       documents = "Documents"; | ||||||
|   #   }; |       publicShare = null; | ||||||
|  |       music = null; | ||||||
|  |       templates = null; | ||||||
|  |     }; | ||||||
|  |  | ||||||
|   #   "org/gnome/desktop/peripherals/keyboard" = { |     mimeApps = { | ||||||
|   #     numlock-state = true; |       enable = true; | ||||||
|   #   }; |       defaultApplications = { | ||||||
|  |         "inode/directory" = "org.gnome.Nautilus.desktop"; | ||||||
|   #   "org/gnome/desktop/peripherals/mouse" = { |         "application/zip" = "org.gnome.FileRoller.desktop"; | ||||||
|   #     natural-scroll = false; |         "application/octet-stream" = "org.gnome.GHex.desktop"; | ||||||
|   #     speed = 0.20851063829787231; |         # pdfs | ||||||
|   #   }; |         "application/pdf" = "org.gnome.Evince.desktop"; | ||||||
|  |         # links | ||||||
|   #   "org/gnome/desktop/peripherals/touchpad" = { |         "x-scheme-handler/https" = "firefox.desktop"; # Links | ||||||
|   #     tap-to-click = true; |         "x-scheme-handler/http" = "firefox.desktop"; # Links | ||||||
|   #     two-finger-scrolling-enabled = true; |         # images | ||||||
|   #     speed = 0.16872427983539096; |         # "image/png" = "org.gnome.Evince.desktop"; | ||||||
|   #   }; |         # "image/jpeg" = "org.gnome.Evince.desktop"; | ||||||
|   # }; |         # "image/gif" = "org.gnome.Evince.desktop"; | ||||||
|  |         # "image/svg+xml" = "org.gnome.Evince.desktop"; | ||||||
|  |         # "image/tiff" = "org.gnome.Evince.desktop"; | ||||||
|  |         # text-based | ||||||
|  |         "text/*" = "vscode.desktop"; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								wallpapers/codioful-formerly-gradienta-lweK7Wme_jo-unsplash.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								wallpapers/codioful-formerly-gradienta-lweK7Wme_jo-unsplash.jpg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 329 KiB | 
							
								
								
									
										
											BIN
										
									
								
								wallpapers/codioful-formerly-gradienta-n2XqPm7Bqhk-unsplash.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								wallpapers/codioful-formerly-gradienta-n2XqPm7Bqhk-unsplash.jpg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 381 KiB | 
							
								
								
									
										
											BIN
										
									
								
								wallpapers/luke-chesser-eICUFSeirc0-unsplash.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								wallpapers/luke-chesser-eICUFSeirc0-unsplash.jpg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.6 MiB | 
							
								
								
									
										
											BIN
										
									
								
								wallpapers/luke-chesser-pJadQetzTkI-unsplash.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								wallpapers/luke-chesser-pJadQetzTkI-unsplash.jpg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.8 MiB | 
							
								
								
									
										
											BIN
										
									
								
								wallpapers/magicpattern-87PP9Zd7MNo-unsplash.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								wallpapers/magicpattern-87PP9Zd7MNo-unsplash.jpg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 3.5 MiB | 
		Reference in New Issue
	
	Block a user