diff --git a/TODO.md b/TODO.md index b912edb..bf8c1cb 100644 --- a/TODO.md +++ b/TODO.md @@ -1,20 +1,15 @@ - [ ] Migrate VSCodium declaration from HM to https://github.com/nix-community/nix-vscode-extensions - [ ] Add the Copy Relative Path and Line Numbers extension to VSCode - [ ] Add samba shares using plusultra samba module -- [x] Add wofi-emoji + keybinding - [ ] Add bitwarden wofi interace - [ ] Test decreasing value of accelSpeed -- [x] Set up Lens -- [ ] Replace flameshot with shotman or grim+slurp commands or swappy https://discourse.nixos.org/t/screenshots-on-hyprland-on-nixos/29055/6?u=hfahmi - [ ] Set up GPG + Git commit signing like before -- [x] Configure dGPU - [ ] Chromium settings to set: - Use system borders - No bookmarks bar - no home button - Font settings - Theme (I don't use a theme but I could make it use the GTK or QT theme) -- [x] Make my basic shortcuts like mod+q work even in the arabic keyboard layout - [ ] Tweak waybar ( Add Memory module, etc.) - [ ] Add swaysr for feedback on changing volume or brightness - [ ] Add GillSans @@ -29,29 +24,22 @@ - [ ] Add preview to fzf widget commands + Change completion trigger https://www.youtube.com/watch?v=MvLQor1Ck3M - Codium extensions: fwcd.kotlin --> Install and configure paths for JDK and stuff or disable those features altogether and use the LSP only + +- Add treefmt to dev env +- Build a good workflow with Thunderbird as my flow + - programs to add or master: broot, dysk, repgrep, backdown, monocle, bandwhich -- Firefox: - - Add zotero connector add-on - - Set "Ask download location" - - Add add-on Highlighter + Notes - Fix KDE Connect connection issue - activity watchers to add and configure: - aw-watcher-utilization - aw-watcher-netstatus (This might be useful in conjunction with vnstat data to determine how much of my personal internet quota is spent on work-related things. -- Explore potential uses for wrapper-manager from viperML -## Packages to try out -- lensfun -- timelens - -- Add dua to UNIX utils - Add systemd unit cron job that permanently deletes trashed files older than 30d - Zellij UX: - Make the distinction between the selected terminal and the others more pronounced! - Resolve conflict between Zellij Ctrl+S and that of nano. Until I use a different text editor. - Add packages: gh + gh-dash -- Comma + nix-index https://github.com/nix-community/nix-index-database?tab=readme-ov-file - Fix this issue https://discourse.nixos.org/t/applications-not-finding-org-freedesktop-secrets/17667/3 which is also making AnyType crash on startup. @@ -59,12 +47,15 @@ fwcd.kotlin --> Install and configure paths for JDK and stuff or disable those f - Try wayshot - NoiseTorch - pasytray -- unixporn saves on reddit - Persistent (across restarts) clipboard solution ( cliphist or clipmenu) (https://wiki.archlinux.org/title/clipboard) (https://mpov.timmorgan.org/super-simple-clipboard-history-for-linux/) - Add QGIS workspace configuration to this config + - Create user profiles for CPU frequency energy and governer. Each core can be assigned a governer separately. + - Add DNS caching to network manager or by configuring systemd-resolvd with it. + + - Configure Shell prompt to show the current kubectl context @@ -72,17 +63,34 @@ fwcd.kotlin --> Install and configure paths for JDK and stuff or disable those f - So I just did a cleaning session for my cache and trash directories and freed up 60 GBs after many months off working on this computer. The tools I frequently use that build up files are pnpm, yarn, trashy. Let's create a small command that runs these commands from anywhere. I say anywhere because for example to get pnpm in my shell I had to cd to a node project to run the command from there. Not the best approach. Works for now. - Set up vscode with the other method that fetches extensions from the official repository -- User Vim keybindings again -- Emoji selector with wofi -- Add `cl` as alias for clear -- Configure birdtray or look into thunderbird's system tray feature in the latest version. Probably will need to get it from nix-unstable/nix-latest. + + + - Create one interface for both the asusctl profile and the cpu-power profile. Probably through a wofi selector and with a system-tray indicator -- Enable automatic-timezoned or localtimed -- Make the laptop log out of my account when it goes to sleep +- Configure birdtray or look into thunderbird's system tray feature in the latest version. Probably will need to get it from nix-unstable/nix-latest. + + + +- Firefox: + - Add zotero connector add-on to config + - [x] Set "Ask download location" + - Add add-on Highlighter + Notes + +- Add wifi-qr to config +- [x] Comma + nix-index https://github.com/nix-community/nix-index-database?tab=readme-ov-file + +- [x] Make my basic shortcuts like mod+q work even in the arabic keyboard layout +- [x] Add dua to UNIX utils + +- [x] Emoji selector with wofi + +- [x] Add `cl` as alias for clear +- [x] Enable automatic-timezoned or localtimed +- [x] Make the laptop log out of my account when it goes to sleep -- Add auto-cpu freq -- Add udiskie again \ No newline at end of file +- [x] Add auto-cpu freq +- [x] Add udiskie again \ No newline at end of file diff --git a/flake.lock b/flake.lock index f6642ca..6000296 100644 --- a/flake.lock +++ b/flake.lock @@ -567,6 +567,26 @@ "type": "github" } }, + "nix-index-database": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1732519917, + "narHash": "sha256-AGXhwHdJV0q/WNgqwrR2zriubLr785b02FphaBtyt1Q=", + "owner": "nix-community", + "repo": "nix-index-database", + "rev": "f4a5ca5771ba9ca31ad24a62c8d511a405303436", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-index-database", + "type": "github" + } + }, "nixlib": { "locked": { "lastModified": 1728781282, @@ -790,6 +810,7 @@ "home-manager": "home-manager", "musnix": "musnix", "nix-colors": "nix-colors", + "nix-index-database": "nix-index-database", "nixos-generators": "nixos-generators", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs_2", diff --git a/flake.nix b/flake.nix index 2b539d1..248061a 100644 --- a/flake.nix +++ b/flake.nix @@ -17,6 +17,9 @@ home-manager.url = "github:nix-community/home-manager/release-24.05"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; + nix-index-database.url = "github:nix-community/nix-index-database"; + nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; + firefox-addons = { url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; inputs.nixpkgs.follows = "nixpkgs"; @@ -114,6 +117,7 @@ homes.users.hfahmi.modules = with inputs; [ nix-colors.homeManagerModules.default catppuccin.homeManagerModules.catppuccin + nix-index-database.hmModules.nix-index ]; # deploy = lib.mkDeploy {inherit (inputs) self;}; diff --git a/modules/nixos/cli-apps/fish/default.nix b/modules/nixos/cli-apps/fish/default.nix index 6b62397..1db0882 100644 --- a/modules/nixos/cli-apps/fish/default.nix +++ b/modules/nixos/cli-apps/fish/default.nix @@ -25,6 +25,8 @@ in { o = "open"; lg = "lazygit"; kc = "kubectl"; + cl = "clear"; + yz = "yazi"; }; plugins = with pkgs.fishPlugins; [ { diff --git a/modules/nixos/suites/common/default.nix b/modules/nixos/suites/common/default.nix index b5268e4..f41bde7 100644 --- a/modules/nixos/suites/common/default.nix +++ b/modules/nixos/suites/common/default.nix @@ -8,6 +8,7 @@ in { }; config = mkIf cfg.enable { + services.automatic-timezoned = enabled; caramelmint = { nix = enabled; diff --git a/modules/nixos/suites/desktop/default.nix b/modules/nixos/suites/desktop/default.nix index 64c0804..152e84d 100644 --- a/modules/nixos/suites/desktop/default.nix +++ b/modules/nixos/suites/desktop/default.nix @@ -11,7 +11,23 @@ in { config = mkIf cfg.enable { services.flatpak.enable = true; environment.systemPackages = with pkgs; [ appimage-run ]; + services.logind.extraConfig = '' + HandlePowerKey=suspend + IdleAction=suspend + IdleActionSec=1m + ''; + + # screen locker + programs.xss-lock.enable = true; + + # Necessary for udiskie + services.udisks2 = enabled; + caramelmint = { + + home.extraOptions = { + services.udiskie = enabled; + }; desktop = { sway = enabled; addons = { xdg-portal = enabled; }; diff --git a/modules/nixos/suites/media/default.nix b/modules/nixos/suites/media/default.nix index 5ed74f2..bc16566 100644 --- a/modules/nixos/suites/media/default.nix +++ b/modules/nixos/suites/media/default.nix @@ -10,7 +10,7 @@ in { config = mkIf cfg.enable { caramelmint.home.extraOptions = { - # programs.mpv.enable = true; + programs.mpv.enable = true; services.playerctld.enable = true; # services.mpris-proxy.enable = true; @@ -22,7 +22,6 @@ in { ytfzf ffmpeg_5 handbrake - freetube playerctl ]; }; diff --git a/modules/nixos/suites/office/default.nix b/modules/nixos/suites/office/default.nix index b973f63..2c89705 100644 --- a/modules/nixos/suites/office/default.nix +++ b/modules/nixos/suites/office/default.nix @@ -99,6 +99,8 @@ in { "browser.download.panel.shown" = true; "identity.fxaccounts.enabled" = false; "signon.rememberSignons" = false; + # This setting disables default configuration to download silently in to Downloads dir. A dialog is shown asking for the download location. + "browser.download.useDownloadDir" = false; }; # userChrome = '' @@ -176,11 +178,14 @@ in { onedriver glib-networking pcmanfm - # lf should be moved to a module with an elaborate configuration + + zathura + pdfgrep + + # TODO: lf should be moved to a module with an elaborate configuration lf ktorrent unstable.anytype - pdfgrep spotify fontfor diff --git a/modules/nixos/suites/perf/default.nix b/modules/nixos/suites/perf/default.nix index 3fce14f..4c46c3a 100644 --- a/modules/nixos/suites/perf/default.nix +++ b/modules/nixos/suites/perf/default.nix @@ -9,6 +9,7 @@ in { }; config = mkIf cfg.enable { + services.auto-cpufreq = enabled; environment.systemPackages = with pkgs; [ powertop diff --git a/modules/nixos/system/power/default.nix b/modules/nixos/system/power/default.nix index 89d16b6..0e517e0 100644 --- a/modules/nixos/system/power/default.nix +++ b/modules/nixos/system/power/default.nix @@ -11,9 +11,21 @@ in { config = mkIf cfg.enable { services = { logind = { + + powerKey = "ignore"; + suspendKey = "ignore"; + rebootKey = "ignore"; + hibernateKey = "ignore"; + + powerKeyLongPress = "ignore"; + suspendKeyLongPress = "ignore"; + rebootKeyLongPress = "ignore"; + hibernateKeyLongPress = "ignore"; + lidSwitch = "suspend-then-hibernate"; lidSwitchDocked = "ignore"; lidSwitchExternalPower = "suspend-then-hibernate"; + extraConfig = '' # don’t shutdown when power button is short-pressed HandlePowerKey=wlogout diff --git a/modules/nixos/tools/misc/default.nix b/modules/nixos/tools/misc/default.nix index 175d902..08e5e4a 100644 --- a/modules/nixos/tools/misc/default.nix +++ b/modules/nixos/tools/misc/default.nix @@ -10,7 +10,9 @@ in { config = mkIf cfg.enable { caramelmint.home.configFile."wgetrc".text = ""; caramelmint.home.extraOptions = { + programs = { + nix-index-database.comma.enable = true; # https://github.com/eth-p/bat-extras btop.enable = true; # TODO: Make a module that includes all my main terminal workflows configured @@ -59,6 +61,7 @@ in { fd pv du-dust + dua gawk strace lurk # Rust alternative to strace