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 | ||||
| ### Deploying to a machine | ||||
| Run  | ||||
| Run | ||||
| ```bash | ||||
| nixos-rebuild switch --flake <target>#<machine> | ||||
| # for instance | ||||
| nixos-rebuild switch --flake .#spectre | ||||
| nixos-rebuild switch --flake .#Nixtre | ||||
| ``` | ||||
| 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 | ||||
| To build an installer iso, run | ||||
| ```bash | ||||
| @@ -38,11 +46,32 @@ nix build .#nixosConfigurations.bcachefs-iso.config.system.build.isoImage | ||||
| 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 | ||||
| - https://github.com/the-nix-way/dev-templates | ||||
| - 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/mwaldleben/nix-config | ||||
| - 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"; | ||||
|     # hyprland, plugins and related utils | ||||
|     hyprland.url = "github:hyprwm/Hyprland"; | ||||
|     hyprgrass = { | ||||
|         url = "github:horriblename/hyprgrass"; | ||||
|         inputs.hyprland.follows = "hyprland"; # IMPORTANT | ||||
|     }; | ||||
|     hyprland-virtual-desktops.url = "github:levnikmyskin/hyprland-virtual-desktops"; | ||||
|     walker.url = "github:abenz1267/walker"; | ||||
|     hyprpanel.url = "github:Jas-SinghFSU/HyprPanel"; | ||||
|     stylix.url = "github:danth/stylix/release-24.11"; | ||||
|     # quicksettings widget | ||||
|     better-control.url = "github:rishabh5321/better-control-flake"; | ||||
|   }; | ||||
|  | ||||
|   outputs = { | ||||
|     self, | ||||
|     nixpkgs, | ||||
|     home-manager, | ||||
|     hyprgrass, | ||||
|     hyprland-virtual-desktops, | ||||
|     hyprpanel, | ||||
|     stylix, | ||||
|     ... | ||||
|   } @ inputs:  | ||||
|   } @ inputs: | ||||
|     let | ||||
|       overlays = [ | ||||
|         inputs.hyprpanel.overlay | ||||
|       ]; | ||||
|     in | ||||
|   { | ||||
|  | ||||
|     ## NixOS configurations are the main output of this flake | ||||
|     # HP Spectre x360 2018 | ||||
|     nixosConfigurations.spectre = nixpkgs.lib.nixosSystem { | ||||
|     nixosConfigurations.Nixtre = nixpkgs.lib.nixosSystem { | ||||
|       system = "x86_64-linux"; | ||||
|       specialArgs = { inherit inputs; }; | ||||
|  | ||||
|       modules = [ | ||||
|         ./hosts/spectre-x360-2018 | ||||
|         stylix.nixosModules.stylix | ||||
|         home-manager.nixosModules.home-manager | ||||
|           { | ||||
|             home-manager.useGlobalPkgs = true; | ||||
| @@ -53,11 +45,7 @@ | ||||
|             home-manager.users.remy.imports = [ | ||||
|               ./users/remy.nix | ||||
|               inputs.nix-flatpak.homeManagerModules.nix-flatpak | ||||
|               inputs.walker.homeManagerModules.default | ||||
|             ]; | ||||
|  | ||||
|             nixpkgs.overlays = [ inputs.hyprpanel.overlay ]; | ||||
|             # _module.args = { inherit inputs; }; | ||||
|           } | ||||
|       ]; | ||||
|     }; | ||||
|   | ||||
| @@ -4,12 +4,19 @@ | ||||
|     imports = [ | ||||
|         ./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/monitoring.nix | ||||
|         ../../modules/nixos/networking.nix | ||||
|         ../../modules/nixos/nh.nix | ||||
|         ../../modules/nixos/nvidia.nix | ||||
|         ../../modules/nixos/pipewire.nix | ||||
|         ../../modules/nixos/podman.nix | ||||
|         ../../modules/nixos/power.nix | ||||
|         ../../modules/nixos/stylix.nix | ||||
|         ../../utils/binary-cache.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 | ||||
|  | ||||
| @@ -22,4 +22,4 @@ | ||||
|       ExecStart = "${pkgs.restic}/bin/restic backup /home/username"; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
| } | ||||
|   | ||||
| @@ -1,8 +1,10 @@ | ||||
| {pkgs, ...}:  | ||||
| {pkgs, ...}: | ||||
| { | ||||
|   programs.vscode = { | ||||
|     enable = true; | ||||
|  | ||||
|     # profiles = { | ||||
|     #   default = { | ||||
|     extensions = with pkgs.vscode-extensions; [ | ||||
|       # QOL | ||||
|       mhutchie.git-graph | ||||
| @@ -14,9 +16,117 @@ | ||||
|       ms-python.isort | ||||
|       ms-python.debugpy | ||||
|       ms-python.vscode-pylance | ||||
|       ms-toolsai.jupyter | ||||
|       ms-toolsai.vscode-jupyter-slideshow | ||||
|       ms-toolsai.jupyter-renderers | ||||
|  | ||||
|       # Nix language | ||||
|       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 = { | ||||
|     enable = true; | ||||
|   }; | ||||
|  | ||||
|   home.packages = with pkgs; [ | ||||
|     fd | ||||
|     bat | ||||
|   ]; | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|   programs.fish = { | ||||
|     enable = true; | ||||
| @@ -22,9 +30,6 @@ | ||||
|     ]; | ||||
|   }; | ||||
|  | ||||
|   home.packages = [ | ||||
|     pkgs.fishPlugins.tide | ||||
|   ]; | ||||
|  | ||||
|   # sets the "default" shell to fish | ||||
|   # 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; | ||||
|   # xdg.portal.enable = true; | ||||
|   # # install the xdg-desktop-portal-gtk package | ||||
|   # # to enable the portal service | ||||
|   # xdg.portal.extraPortals = with pkgs; [ | ||||
|   #   xdg-desktop-portal-gtk | ||||
|   # ]; | ||||
|   # services.flatpak.update.auto.enable = false; | ||||
|   # 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" | ||||
|   # ]; | ||||
|  | ||||
| } | ||||
|   services.flatpak.packages = [ | ||||
|     "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 = [ | ||||
|     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.portal = { | ||||
|     enable = true; | ||||
|     xdgOpenUsePortal = true; | ||||
|  | ||||
|     # configPackages = [ pkgs.hyprland ]; | ||||
|     config = { | ||||
|       common.default = ["gtk"]; | ||||
|       hyprland.default = ["gtk" "hyprland"]; | ||||
|     }; | ||||
|  | ||||
|     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; | ||||
|     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, | ||||
|     lib, | ||||
|     pkgs, | ||||
|     ... | ||||
|   config, | ||||
|   lib, | ||||
|   pkgs, | ||||
|   ... | ||||
| }: | ||||
| { | ||||
|  | ||||
| @@ -13,34 +13,34 @@ | ||||
|       configuration = { | ||||
|         system.nixos.tags = [ "nvidia-enabled" ]; | ||||
|         # Enable OpenGL | ||||
|         hardware.graphics = { | ||||
|           enable = true; | ||||
|         }; | ||||
|         hardware.nvidia = { | ||||
|           # prime = { | ||||
|           #   nvidiaBusId = "PCI:1:0:0"; | ||||
|           #   intelBusId = "PCI:0:2:0"; | ||||
|           # }; | ||||
|         hardware.graphics.enable = lib.mkForce true; | ||||
|         hardware.nvidia = lib.mkForce { | ||||
|           modesetting.enable = true; | ||||
|           powerManagement.enable = true; | ||||
|           # features not available for the old graphics card | ||||
|           powerManagement.finegrained = false; | ||||
|           open = false; | ||||
|           nvidiaSettings = false; | ||||
|  | ||||
|           prime = { | ||||
|             sync.enable = true; | ||||
|             nvidiaBusId = "PCI:1:0:0"; | ||||
|             intelBusId = "PCI:0:2:0"; | ||||
|           }; | ||||
|  | ||||
|           package = config.boot.kernelPackages.nvidiaPackages.mkDriver { | ||||
|             version = "565.77"; | ||||
|             sha256_64bit = "sha256-CnqnQsRrzzTXZpgkAtF7PbH9s7wbiTRNcM0SPByzFHw="; | ||||
|             sha256_aarch64 = "sha256-LSAYUnhfnK3rcuPe1dixOwAujSof19kNOfdRHE7bToE="; | ||||
|             openSha256 = "sha256-Fxo0t61KQDs71YA8u7arY+503wkAc1foaa51vi2Pl5I="; | ||||
|             settingsSha256 = "sha256-VUetj3LlOSz/LB+DDfMCN34uA4bNTTpjDrb6C6Iwukk="; | ||||
|             persistencedSha256 = "sha256-wnDjC099D8d9NJSp9D0CbsL+vfHXyJFYYgU3CwcqKww="; | ||||
|             version = "575.51.02"; | ||||
|             sha256_64bit = "sha256-XZ0N8ISmoAC8p28DrGHk/YN1rJsInJ2dZNL8O+Tuaa0="; | ||||
|             openSha256 = "sha256-NQg+QDm9Gt+5bapbUO96UFsPnz1hG1dtEwT/g/vKHkw="; | ||||
|             settingsSha256 = "sha256-6n9mVkEL39wJj5FB1HBml7TTJhNAhS/j5hqpNGFQE4w="; | ||||
|             usePersistenced = false; | ||||
|           }; | ||||
|         }; | ||||
|         # overwrite the blacklists set previously | ||||
|         boot.extraModprobeConfig = ""; | ||||
|         boot.blacklistedKernelModules = []; | ||||
|         services.udev.extraRules = ""; | ||||
|         services.xserver.videoDrivers = ["nvidia"]; | ||||
|         boot.extraModprobeConfig = lib.mkForce ""; | ||||
|         boot.blacklistedKernelModules = lib.mkForce []; | ||||
|         services.udev.extraRules = lib.mkForce ""; | ||||
|         services.xserver.videoDrivers = lib.mkForce ["nvidia"]; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| @@ -51,7 +51,7 @@ | ||||
|     blacklist nouveau | ||||
|     options nouveau modeset=0 | ||||
|   ''; | ||||
|    | ||||
|  | ||||
|   services.udev.extraRules = '' | ||||
|     # 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" | ||||
| @@ -63,34 +63,8 @@ | ||||
|     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 | ||||
|     # 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" ]; | ||||
| } | ||||
|  | ||||
|  | ||||
| # 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 = [ | ||||
|     ../modules/home-manager/browser.nix | ||||
|     ../modules/home-manager/code.nix | ||||
|     ../modules/home-manager/dev.nix | ||||
|     ../modules/home-manager/documents.nix | ||||
|     ../modules/home-manager/fish.nix | ||||
|     ../modules/home-manager/flatpaks.nix | ||||
|     ../modules/home-manager/hyprland-customization.nix | ||||
|     ../modules/home-manager/hypr | ||||
|     ../modules/home-manager/keepassxc.nix | ||||
|     ../modules/home-manager/kitty.nix | ||||
|     ../modules/home-manager/kubectl.nix | ||||
|     ../modules/home-manager/obsidian.nix | ||||
|     ../modules/home-manager/owncloud-client.nix | ||||
|     ../modules/home-manager/stylix.nix | ||||
|     ../modules/home-manager/thunderbird.nix | ||||
|     ../modules/home-manager/wofi.nix | ||||
|     ../modules/home-manager/xdg-portals.nix | ||||
|   ]; | ||||
|  | ||||
| @@ -23,38 +29,45 @@ with lib.hm.gvariant; | ||||
|   home.username = "remy"; | ||||
|   home.homeDirectory = "/home/remy"; | ||||
|  | ||||
|   #home.file.<filepath> = <content>; | ||||
|    | ||||
|   ## Utils relevant to this user only | ||||
|   programs.git = { | ||||
|     enable = true; | ||||
|     userName = "Remy Moll"; | ||||
|     userEmail = "me@moll.re"; | ||||
|   }; | ||||
|    | ||||
|  | ||||
|   # ## Gnome keyboard and mouse settings | ||||
|   # dconf.settings = { | ||||
|   #   # set the keyboard layout to german | ||||
|   #   "org/gnome/desktop/input-sources" = { | ||||
|   #     current = mkUint32 0; | ||||
|   #     sources = [ (mkTuple [ "xkb" "de" ]) (mkTuple [ "xkb" "ch" ]) (mkTuple [ "xkb" "us" ]) ]; | ||||
|   #     xkb-options = [ "lv3:ralt_switch" ]; | ||||
|   #   }; | ||||
|   ## XDG configuration | ||||
|   xdg = { | ||||
|     userDirs = { | ||||
|       enable = true; | ||||
|       desktop = "Desktop"; | ||||
|       pictures = "Pictures"; | ||||
|       documents = "Documents"; | ||||
|       publicShare = null; | ||||
|       music = null; | ||||
|       templates = null; | ||||
|     }; | ||||
|  | ||||
|   #   "org/gnome/desktop/peripherals/keyboard" = { | ||||
|   #     numlock-state = true; | ||||
|   #   }; | ||||
|  | ||||
|   #   "org/gnome/desktop/peripherals/mouse" = { | ||||
|   #     natural-scroll = false; | ||||
|   #     speed = 0.20851063829787231; | ||||
|   #   }; | ||||
|  | ||||
|   #   "org/gnome/desktop/peripherals/touchpad" = { | ||||
|   #     tap-to-click = true; | ||||
|   #     two-finger-scrolling-enabled = true; | ||||
|   #     speed = 0.16872427983539096; | ||||
|   #   }; | ||||
|   # }; | ||||
|     mimeApps = { | ||||
|       enable = true; | ||||
|       defaultApplications = { | ||||
|         "inode/directory" = "org.gnome.Nautilus.desktop"; | ||||
|         "application/zip" = "org.gnome.FileRoller.desktop"; | ||||
|         "application/octet-stream" = "org.gnome.GHex.desktop"; | ||||
|         # pdfs | ||||
|         "application/pdf" = "org.gnome.Evince.desktop"; | ||||
|         # links | ||||
|         "x-scheme-handler/https" = "firefox.desktop"; # Links | ||||
|         "x-scheme-handler/http" = "firefox.desktop"; # Links | ||||
|         # images | ||||
|         # "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